Javascript 是一种简洁的语言,但似乎缺少一些非常基本的功能,例如映射和集合。
Map 是一种键/值存储,其中键和值可以是任意对象,并且每个键最多有一个值,以严格相等来区分。
Set 与 map 相同,只是它没有值,您只对存在感兴趣,同样是严格相等。
如果我想使用这些 ADT,我们在 javascript 中最接近的是 Object,这几乎是正确的,但是将所有键强制转换为字符串,这使得它对于一些真正的集和映射将用于的事情毫无用处。
给定映射,集合是微不足道的:set[key] = true
而不是 set[key] = value
。或者可以使用 Arrays、Array.indexOf 和 Array.splice 实现完整的集合功能(对于小集合)。添加平行值列表将提供 map 功能。对于更大的数据集,可以在普通对象之上实现哈希表,但我认为这将成为一个更严肃的项目。
所以我的问题是,是否有比上述建议更惯用的实现(或更简单的解决方案)来从 Javascript 中获得完整的 Map/Set 功能?还是每个人都咬紧牙关?
编辑 所以它看起来像 es6 maps/sets spec是要走的路。我会接受一个链接到/显示一个简单且可用的 shim 的答案。
最佳答案
不幸的是,在 Javascript 中无法做到这一点。
Yet .
关于javascript - 如何在 Javascript 中获取真实的 map 和布景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20449442/