获取条件输出的最有效方法

问题描述 投票:0回答:2

我有2个数组json对象

arr1=[{'id':'A'},{'id':'B'}, {'id':'C'}];
arr2=[{'id':'A'},{'id':'C'}, {'id':'D'}, {'id': 'E'}];

我如何获取所有唯一的json对象?我希望我的输出成为

output = [{'id':'B'}, {'id':'D'}, {'id':'E'}]

谢谢

编辑

我不想删除重复项。我只想得到独一无二的对象。

output = [{'id':'B'}, {'id':'D'}, {'id':'E'}]

NOT

output = [{'id':'A'},{'id':'B'}, {'id':'C'}, {'id':'D'}, {'id':'E'}]

对不起,如果我不清楚的话

javascript
2个回答
0
投票

这个问题被问到一个[[lot,但是在这种特殊情况下,可以这样解决:

arr1=[{'id':'A'},{'id':'B'}, {'id':'C'}]; arr2=[{'id':'A'},{'id':'C'}, {'id':'D'}, {'id': 'E'}]; var uniques = [...arr1, ...arr2] .filter((v, i, a) => a.find(el => el.id === v.id) === v ); console.log(uniques);

-1
投票

arr1=[{'id':'A'},{'id':'B'}, {'id':'C'}]; arr2=[{'id':'A'},{'id':'C'}, {'id':'D'}, {'id': 'E'}]; function uniqById(...args) { const attr = 'id'; const seen = {}; return arr1.concat(arr2).filter(o => seen[o[attr]] ? false : seen[o[attr]] = true, true); } console.log(uniqById(arr1, arr2));
© www.soinside.com 2019 - 2024. All rights reserved.