javascript - 如何在 Javascript 中获取真实的 map 和布景?

标签 javascript data-structures

Javascript 是一种简洁的语言,但似乎缺少一些非常基本的功能,例如映射和集合。

Map 是一种键/值存储,其中键和值可以是任意对象,并且每个键最多有一个值,以严格相等来区分。

Set 与 map 相同,只是它没有值,您只对存在感兴趣,同样是严格相等。

如果我想使用这些 ADT,我们在 javascript 中最接近的是 Object,这几乎是正确的,但是将所有键强制转换为字符串,这使得它对于一些真正的集和映射将用于的事情毫无用处。

给定映射,集合是微不足道的:set[key] = true 而不是 set[key] = value。或者可以使用 Arrays、Array.indexOf 和 A​​rray.splice 实现完整的集合功能(对于小集合)。添加平行值列表将提供 map 功能。对于更大的数据集,可以在普通对象之上实现哈希表,但我认为这将成为一个更严肃的项目。

所以我的问题是,是否有比上述建议更惯用的实现(或更简单的解决方案)来从 Javascript 中获得完整的 Map/Set 功能?还是每个人都咬紧牙关?

编辑 所以它看起来像 es6 maps/sets spec是要走的路。我会接受一个链接到/显示一个简单且可用的 shim 的答案。

最佳答案

不幸的是,在 Javascript 中无法做到这一点。

Yet .

关于javascript - 如何在 Javascript 中获取真实的 map 和布景?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20449442/

相关文章:

javascript - 如何在nodejs中正确使用域

javascript - Angular ui 树在 mozilla 中不起作用

algorithm - 将两个字符串分开形成回文

algorithm - 将不平衡树转换为生成树

.net - 从字典生成数据表

javascript - Service Worker 即时声明页面的最佳实践

javascript - 如何在 javascript/typescript 中使用新的 Gremlin 3.x 语法编写旧查询

php - 使用 PHP,在重定向之前编辑或更改用户代理?

optimization - Haskell:列表/向量/数组性能调优

c++ - 读一个大文件统计单词重复K次的次数