js 数组里面的对象去重复

JavaScript013

js 数组里面的对象去重复,第1张

var arr=[{id:'1',name:'张三'},{id:'1',name:'张三'},{id:'2',name:'李四'}];

得到:var arr=[{id:'1',name:'张三'},{id:'2',name:'李四'}];

varresult = []

    varobj = {}

    for(vari = 0i <arr.lengthi++) {

      if(!obj[arr[i].key]) {

        result.push(arr[i])

        obj[arr[i].key] =true

      }

    }

    console.log(result)

既然你要检测对象中的属性。那么首先就是要遍历这个对象。你可以用 for  in 循环

下面我循环obj这个对象并且拿到这个对象中所有的属性和方法:

for(var key in obj){

console.log(key+"==="+obj[key])//打印obj对象中的属性和方法。

};

最笨的方法是用对象的键值对做标记,如:

var arr=[1,2,3,4,5,6,4]

function check(data){//data一定是数组

    if(!data) data=[]

    return data

    if(data.length==0) return data

    

    var _obj={}//用于标记

    var newArr=[]//删除重复后的数组

    for(var i=0i<data.lengthi++){

        var val=data[i]

        if(obj[val]||obj[val]==0){//已结存在,注意值为0时if(0){}的判断--永远为false

            continue

        }else{

            obj[val]=val//把val以键值对的形式存入obj

            newArr.push(val)

        }

    }

    

    return newArr//返回删除重复的数组

}

var arr1=check(arr)//结果为:[1,2,3,4,5,6]