MDN引用了JavaScript的集合抽象。我有一个对象数组,我想转换为一个集合,以便我能够删除(.delete())各种元素的名称:
var array = [
{name: "malcom", dogType: "four-legged"},
{name: "peabody", dogType: "three-legged"},
{name: "pablo", dogType: "two-legged"}
];
我如何将这个数组转换为一个集?更具体地说,是否有可能在不遍历上述数组的情况下做到这一点?文档相对缺乏(对于实例化集来说足够了;如果可能的话,不用于转换)。
我也可能在考虑转换为一个地图,删除键。我试图完成的是一个可迭代的集合,可以通过访问主要通过键(而不是索引)的元素来访问或修改。
从一个数组到另一个数组的转换是最终目标。
const categoryWithDuplicates =[
'breakfast', 'lunch',
'shakes', 'breakfast',
'lunch', 'shakes',
'breakfast', 'lunch',
'shakes'
]
const categoryWithoutDuplicates =[...new Set(categoryWithDuplicates)];
console.log(categoryWithoutDuplicates)
输出:['breakfast', 'lunch', 'shakes']
根据定义,“集合是值的集合,其中每个值只能出现一次。”所以,如果你的数组有重复的值,那么在重复的值中只有一个值会被添加到你的Set中。
var arr = [1, 2, 3];
var set = new Set(arr);
console.log(set); // {1,2,3}
var arr = [1, 2, 1];
var set = new Set(arr);
console.log(set); // {1,2}
所以,如果数组中有重复的值,不要转换为set。