我有一个对象数组
var arr = [
{id: 1, name: 'Apple'}, {id: 1, name: 'Mango'}, {id: 2, name: 'Pear'}, {id: 2, name: 'Orange'}
];
如何确保arr
仅包含唯一对象?
答案 0 :(得分:0)
使用 Array.filter 。当into filter函数返回true时,将维护该元素。创建临时变量idsMemo
是为了存储并检查 id 是否已存在。
var arr = [{id: 1, name: 'Apple'}, {id: 1, name: 'Mango'}, {id: 2, name: 'Pear'}, {id: 2, name: 'Orange'}]
var idsMemo = [];
arr = arr.filter(function(obj){
return idsMemo.indexOf(obj.id) == -1 ? !!idsMemo.push(obj.id) : false
});
document.write(JSON.stringify(arr))