MSDN 引用了 JavaScript 的Set集合抽象。我有一个对象数组,我想将它们转换为一个集合,以便能够.delete()按名称删除 () 各种元素:
.delete()
var array = [ {name: "malcom", dogType: "four-legged"}, {name: "peabody", dogType: "three-legged"}, {name: "pablo", dogType: "two-legged"} ];
如何将此数组转换为集合?更具体地说,是否可以在不迭代上述数组的情况下做到这一点?文档相对缺乏(对于实例化集足够了;不适用于转换 - 如果可能的话)。
我可能还在考虑转换为Map,以便通过键删除。我想要完成的是一个可迭代的集合,可以通过主要通过键(而不是索引)访问元素来访问或修改它。
从一个数组到另一个数组的转换是最终目标。
只需将数组传递给 Set 构造函数。Set 构造函数接受一个iterable参数。Array 对象实现了iterable协议,因此它是一个有效参数。
iterable
var arr = [55, 44, 65]; var set = new Set(arr); console.log(set.size === arr.length); console.log(set.has(65));
看这里