js 中属性名称数字和字符串问题。

秋风_irwin 2017-06-12 02:27:59
问对于。[1,2,3,4,5,6,'2'];
我想通过hashmap形式,存入一个对象,但是发现一个问题。存入对象时候,'2'和2会被当成同样的值。有什么比较好的解决方式。
...全文
231 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
天际的海浪 2017-06-12
  • 打赏
  • 举报
回复
可以用es6新增的Map对象(ie11支持),Map的键名可以是任何类型。不像Object对象键名只能是字符串。

var m = new Map();
m.set("2", "black");
m.set(2, "red");

alert(m.get("2"));
alert(m.get(2));
秋风_irwin 2017-06-12
  • 打赏
  • 举报
回复
引用 1 楼 Free_Wind22 的回复:
再加个类型做key, map[typeof(val)+val]
懂了,。不过判断属性还是用Object.prototype.toString.call。typeof无法判断function和object
2017-06-12
  • 打赏
  • 举报
回复
再加个类型做key, map[typeof(val)+val]

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧