javascript中的对象集
|
我想用Javascript拥有一组对象。即,仅包含唯一对象的数据结构。
通常建议使用属性,例如
myset[\"key\"] = true
。但是,我需要键成为对象。我已经读过Javascript将属性名称转换为字符串,所以我想我不能使用myset[myobject] = true
。
我可以使用数组,但是我需要比O(n)性能更好的东西来添加,查找和删除项目。
它需要能够仅通过引用将对象区分开,因此给出:
var a = {};
var b = {};
那么应该可以同时添加a
和b
,因为它们是独立的对象。
基本上,我追求的是C ++的std::set
之类的东西,可以存储Javascript对象。有任何想法吗?
没有找到相关结果
已邀请:
8 个回复
貉骂
:
臀夯脖锑
翱抹村
方法,则它是:
如果您想简化此过程,请使其成为一类:
喷乡顾沥沪
,可以使用
。请注意,值是对象本身,因此可以通过查看ѭ15的所有属性并将所有值转储到数组中来提取对象集。 这是全班,我叫16英镑。它要求对象通过它们的“ 12”方法进行唯一标识,这对我来说是可以的。
,
和
应该都比O(n)时间运行更好-不管javascript的属性访问效率是多少,希望是O(1)或O(n log n)。
珊畴炮贩号
以便进行插入,搜索和删除(不计算哈希函数的顺序,这不应该比
差,特别是如果您要遍历其属性以创建哈希表时)值)。
席酱
应该表现为: 标准:http://www.ecma-international.org/ecma-262/6.0/#sec-set-o-p-v-throw 非官方的ES6备忘单:https://github.com/lukehoban/es6features#map--set--weakmap--weakset 在Firefox 32上的工作示例(但未在Chromium 37中实现):
从
开始,这并不奇怪:缺省情况下,相等比较对象地址。 在不支持的浏览器中实现该模块的模块:https://github.com/medikoo/es6-set
攫怂绵十
臀夯脖锑