gpt4 book ai didi

Javascript map 使用 HTMLElement 作为键

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

如标题所示,我使用 HTMLElement 作为 javascript map 容器的关键

考虑下面的例子

let map =  new Map(), 
nodeA = document.createElement("b"),
nodeB = document.createElement("b");
map[nodeA] = 5;
console.log(map[nodeB]); // prints 5

现在显然 nodeA.isSameNode(nodeB) 会给你 false。

玩了一会儿,我发现Map会将具有相同标签名称的元素视为“相等”,不管它们是否实际上是同一个节点。

有没有办法绕过这种行为?即我希望将不同的节点视为不同的键。

编辑 感谢 MarcelD 指出。我的意思是说 map[nodeB] 是固定的,感谢答案。愚蠢的错误

最佳答案

你不使用 Map如预期的那样。

您需要编写 map.set(nodeA, 5) 而不是 map[nodeA] = 5。否则,您只需添加一个带有字符串键 "[object HTMLElement]" 和值 5 的新属性。

let nodeA = document.createElement("b");
let nodeB = document.createElement("b");

let map = new Map();
map.set(nodeA, 5);
map.set(nodeB, 1);

console.log(map.get(nodeA)); // 5
console.log(map.get(nodeB)); // 1

关于Javascript map 使用 HTMLElement 作为键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44080526/

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