我通过以下方式创建具有特征和样式的字典:

featureStyles = { };
myList.forEach((f) => featureStyles[f] = myStyle);


myList是具有id的要素数组。

但是,当我在调试器中检查该代码时,只会得到一个元素:

javascript - 字典仅包含单个元素-LMLPHP

当我选择不使用特征作为键时,我选择使用功能id,如图所示:

javascript - 字典仅包含单个元素-LMLPHP

我不能在这里使用对象作为键吗?

最佳答案

您不能将对象用作对象键,它会转换为字符串,因此每个对象都对应于[object Object],所有键都相同,因此您始终会覆盖先前的键值。

您可以改用WeakMapMap

var featureStyles = new WeakMap();
// var featureStyles = new Map();

myList.forEach((f) => featureStyles.set(f, myStyle));

09-19 18:11