//1.遍历数组,发现相等的就删除
//用来保存新数组
var arr0 = [];
for (var i in arr) {
//如果新数组中没有出现就保存到新数组
if (arr0.indexOf(arr[i]) == -1) {
arr0.push(arr[i]);
}
}
console.log(arr0);
//2.遍历数组进行比较
for (var i = 0; i < arr.length; i++) {
for (var j = i + 1; j < arr.length; j++) {
//如果发现相等,删除j
if (arr[i] == arr[j]) {
//删除j
arr.splice(j, 1);
//删除j后数组长度减少1,需要j--
//否则每删除一个,就会跳过后面的比较
j--;
}
}
}
console.log(arr);
//3.利用set去重,最后把set转换为数组
let singlArr = (arr) => {
let s = new Set();
arr.forEach(item => {
s.add(item);
});
return Array.from(s);
};
let arr0 = singlArr(arr);
console.log(arr0);
//4.利用set数据类型去重,然后利用...打散set放到数组[]中
let arr0 = [...new Set(arr)];
console.log(arr0);
补充一个数组去除空对象的方法
例如:arr=[{a:1,b:2},{},{},{},{c:4}]
去除arr中的空对象{}后 arr=[{a:1,b:2},{c:4}]
let newArr = arr.filter(item => Object.keys(item).length !== 0);
console.log(newArr);//[{a:1,b:2},{c:4}]