js 数组里的对象去重

152 阅读1分钟

方法一:(双重字段去重)
var arr = [ { id: 1, name: 'vue' }, 
            { id: 1, name: 'vue' },      
            { id: 2, name: 'react' }, 
            { id: 2, name: 'react' },     
            { id: 3, name: 'js' },      
            { id: 4, name: 'java' },      
            { id: 5, name: 'php' },      
            { id: 6, name: 'vue' },      
            { id: 7, name: 'vue' }  ];

    for (var i = 0; i < arr.length - 1; i++) {
        for (var j = 1; j < arr.length; j++) {        
            if (i !== j) {          
                if (arr[i].id === arr1[j].id && arr[i].name === arr[j].name) {            
                    arr.splice(j, 1);          
                                 }  
                              
                               } 
                         } 
                    }
console.log('arr---', arr1);

方法2:(单个字段去重)
    var arrData = [  { id: 0, name: '小明' },      
                     { id: 1, name: '小张' },
                     { id: 2, name: '小李' }, 
                     { id: 3, name: '小孙' },  
                     { id: 1, name: '小周' },   
                     { id: 2, name: '小陈' }   ];    
    var obj = {};   
    arrData = arrData.reduce((cur, next) => {     
        obj[next.id] ? '' : (obj[next.id] = true && cur.push(next));     
            return cur;    
     }, []); // 设置cur默认类型为数组,并且初始值为空的数组   
     console.log('arrData---', arrData); // 打印出数组去重后的结果