作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在研究 ES6 中即将推出的 Map 数据结构的规范。它应该很棒,因为任何东西都可以是 Map 中的键,而不仅仅是字符串,但是当我用几个对象示例尝试它时,我无法检索我插入到 Map 中的值。
var _projects = new Map();
_projects.set({}, [...]);
_projects.set({page: 2}, [...]);
_projects.has({page:2})
false
然后我在 Mozilla developers 中看到了这个网站:
Key equality is based on the "same-value" algorithm: NaN is considered the same as NaN (even though NaN !== NaN) and all other values are considered equal according to the semantics of the === operator.
如果是这种情况,那么如果我想根据对象的值而不是其身份检索对象的值,我有哪些选择?
最佳答案
请记住 {x:5} !== {x:5}
是真的,因为它们是两个不同的对象。
你必须引用它们。
这意味着你不能只是 _projects.has({x:5})
因为那是一个新对象。
您必须执行以下操作:
var _projects = new Map();
var obj = {x:5};
_projects.set(obj, [1,2]);
_projects.has(obj) //true;
关于javascript - map 如何在 Ecmascript 6 中使用对象键工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053238/
我是一名优秀的程序员,十分优秀!