有没有一种方法可以确保始终保留第n个索引来删除重复项。 所以如果我有
[{name: "john", age:20},{name:"john", age:30}]
我需要结果始终为
[{name:"john",age:30}]
当前,我正在使用这种方法来去除公仔
PICKER.saveSelection = PICKER.saveSelection.filter((select, index, self) => {
return self.map(function(mapItem){ return mapItem["category"]; }).indexOf(select["category"]) === index;});
答案 0 :(得分:4)
您可以使用reduce
并使用名称作为键将数组分组为一个对象。使用Object.values
将对象转换回数组。
var arr = [
{name: "john", age:20},
{name:"john", age:30},
{name:"adam", age:30},
{name:"eddie", age:27}
];
var result = Object.values(arr.reduce((c, v) => Object.assign(c, {[v.name]: v}), {}));
console.log(result);