我有一个多维数组,如下所示。如果特定键值的值重复
,我需要删除前一行[
{"id":5, "name":"abc"}
{"id":5, "name":"abcd"}
{"id":6, "name":"abcde"}
]
如果id的值已经存在,我需要在删除前一行后得到如下结果。
[
{"id":5, "name":"abcd"}
{"id":6, "name":"abcde"}
]
答案 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);