我通过以下方式创建具有特征和样式的字典:
featureStyles = { };
myList.forEach((f) => featureStyles[f] = myStyle);
myList
是具有id
的要素数组。但是,当我在调试器中检查该代码时,只会得到一个元素:
当我选择不使用特征作为键时,我选择使用功能
id
,如图所示:我不能在这里使用对象作为键吗?
最佳答案
您不能将对象用作对象键,它会转换为字符串,因此每个对象都对应于[object Object]
,所有键都相同,因此您始终会覆盖先前的键值。
您可以改用WeakMap
或Map
:
var featureStyles = new WeakMap();
// var featureStyles = new Map();
myList.forEach((f) => featureStyles.set(f, myStyle));