1. 程式人生 > 其它 >js去除陣列物件中的重複物件

js去除陣列物件中的重複物件

原連結:https://blog.csdn.net/nnaay_/article/details/104689400

1、根據陣列物件中的id作比較,id相同的去掉。這種方法只會保留 id 第一個出現的陣列

第一種:

 var arr = [
    {id: 1, name: 'sli', year: 2012},
    {id: 2, name: 'ap', year: 2015},
    {id: 1, name: 'alslion', year: 2012},
    {id: 3, name: 'pose', year: 2012},
]

//刪除arr中的重複物件
var newArr= [];
var
arrId = []; for(var item of arr){ if(arrId.indexOf(item['id']) == -1){ arrId.push(item['id']); newArr.push(item); } } console.log(arrId,newArr);

結果如下:

第二種:reduce()

var arr = [
    {name:'uzi',color:'blue'},
    {name:'pdd',color:'white'},
    {name:'mlxg',color:'orange'},
    {name:
'uzi',color:'red'}, ] let hash = {}; var newArr = arr.reduce((item, next) => { hash[next.name] ? '' : hash[next.name] = true && item.push(next); return item }, []); console.log(newArr);

結果如下:

第三種:

let arr = [
    {name:'黎明',id:21111},
    {name:'王小二',id:1111},
    {name:'大小二',id:3222}
]

arr.splice(arr.findIndex(item 
=> item.id === 3222), 1);

結果如下: