简单的数组去重
在开发过程中经常会遇到去重
首先简单的去重话无非就是一个数组里面有重复的数据
例如
let array = ["苹果","香蕉","西瓜","西瓜"];
let newarray = [];
for(let i=0;i<array.length;i++){
if(newarray.indexOf(array[i])==-1){
newarray.push(array[i]);
}
}
console.log(newarray);
这样无非是利用数组方法indexOf()来判断数组中是否有这个元素,如果没有返回-1,我就把它push到新的空数组里面,这样就实现了简单的去重!
数组对象去重
var arr = [{
id: '01',
value: '乐乐'
}, {
id: '02',
value: '博博'
}, {
id: '03',
value: '淘淘'
},{
id: '04',
value: '哈哈'
},{
id: '01',
value: '乐乐'
}];
var result = [];
var obj = {};
for (var i = 0; i < arr.length; i++) {
if (!obj[arr[i].id]) {
result.push(arr[i]);
obj[arr[i].id] = true;
}
}
console.log(result);
这样做就去重了,其实也是和上面那个方法差不多 只是数组中的对象不支持用indexOf(),所以利用空对象当中间件
每次判断空对象是否有这个key值,如果没有则,往空数组里面push这个对象,每push完之后把已经push过去的这个id记录一下,这样就实现了数组对象去重