我有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'}]
对不起,如果我不清楚的话
这个问题被问到一个[[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);
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));