从数组中删除总是返回第n个索引的重复对象

时间:2018-06-29 17:47:57

标签: javascript filter duplicates

有没有一种方法可以确保始终保留第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;});

1 个答案:

答案 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);