得到: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]