ReactJS / Javascript如何从多维数组中删除重复数组?

时间:2018-02-22 08:05:21

标签: javascript reactjs

我有一个多维数组,如下所示。如果特定键值的值重复

,我需要删除前一行
[
  {"id":5, "name":"abc"}
  {"id":5, "name":"abcd"}
  {"id":6, "name":"abcde"}
]

如果id的值已经存在,我需要在删除前一行后得到如下结果。

[
  {"id":5, "name":"abcd"}
  {"id":6, "name":"abcde"}
]

2 个答案:

答案 0 :(得分:4)

Map可用于制作非常酷的单行



const input = [
  {"id":5, "name":"abc"},
  {"id":5, "name":"abcd"},
  {"id":6, "name":"abcde"}
]

const output = [...new Map(input.map(o => [o.id, o])).values()]

console.log(output)




答案 1 :(得分:0)

您可以使用array#reduce并根据id密钥对数据进行分组。如果重复,则替换现有的。然后使用Object.values()提取所有值。



var data = [{ "id": 5, "name": "abc" }, { "id": 5, "name": "abcd" }, { "id": 6, "name": "abcde" }],
    result = Object.values(data.reduce((r,o) => {
      r[o.id] = o;
      return r;
    },{}));
console.log(result);