gpt4 book ai didi

javascript - map 如何在 Ecmascript 6 中使用对象键工作?

转载 作者:行者123 更新时间:2023-11-30 12:26:55 24 4
gpt4 key购买 nike

我一直在研究 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com