MSDN引用了JavaScript的Set集合抽象。我有一个要转换为集合的对象数组,以便能够.delete()
按名称删除()各种元素:
var array = [
{name: "malcom", dogType: "four-legged"},
{name: "peabody", dogType: "three-legged"},
{name: "pablo", dogType: "two-legged"}
];
如何将此数组转换为集合?更具体地说,是否可以在不迭代上述数组的情况下执行此操作?相对缺少文档(对于实例化集足够;对于转换,则足够)(如果可能的话)。
我可能还在考虑转换为Map,以通过密钥将其删除。我试图实现的是一个可迭代的集合,可以通过主要通过键(而不是索引)来访问元素来访问或修改该集合。
从数组到另一个的转换是最终目标。
1
听起来像是一个普通的旧物件将为您工作...
—
dandavis
@托马斯:所以我想念一些我想学的东西。var s = new Set(),添加对象并发出s.delete(whatever)-和var o = {1:'aaa',2:'bbbb'...}并发出delete(o [ '1'])?
—
Veverke'3
@Veverke比您的初始评论(+1)更具描述性。谢谢。但是,又有可能做到这一点,而无需遍历数组以将数组的内容添加到对象并保留诸如键可访问结构之类的列表?听起来您有个主意。如果您有时间详细说明,我不介意以答案格式查看它。
—
托马斯
该数组对象无效,因为
—
Alnitak
{"bob", "dole"}
它不是有效的对象。
@Veverke ES6
—
Alnitak
Set
和Map
是“纯粹”的执行这些数据结构是不吃亏的问题,一个的Object
当事情被添加到它的原型可以。