一、原生JS去重
数组去重思路:
1、建立新数组
2、遍历旧数组
3、往新数组中放置旧数组的元素
4、遍历新数组
5、判断如果新数组中有相同的元素,就不往新数组中放了
var flag = true;//新数组中没有相同的元素
var arrOld = [2, 3, 5, 4, 3, 2, 6, 8, 5, 4, 6, 2];
// 1、
var arrNew = [];
// 2、
for (var i = 0; i < arrOld.length; i++) {
flag = true;
// 4、
for (var j = 0; j < arrNew.length; j++) {
// 5、
if (arrNew[j] == arrOld[i]) {
// 新数组中有相同的元素变成false
flag = false;
}
}
// 3、
if (flag) {
arrNew.push(arrOld[i])// [2, 3, 5, 4, 6, 8]
}
}
二、利用对象属性名不能重复去重
数组->对象->数组
1、创建新数组
2、创建新对象
3、遍历旧数组
4、将旧数组中的元素当做新对象的属性名,属性值随意写
5、遍历新对象
6、将新对象中的属性当做新数组的元素即可
var arr = [100, 20, 30, 50, 30, 100, 20, 50];//[100,20,30,50]
// 1、
var arrNew = [];
// 2、
var objNew = {};
// 3、
for (var i = 0; i < arr.length; i++) {
console.log(arr[i]);
// 4、
objNew[arr[i]] = "哈哈";
}
console.log(objNew);
// 5、
for (x in objNew) {
console.log(x);
// 6、
arrNew.push(Number(x));
}
三、利用set结构成员值唯一的特点
var arr = [100, 20, 30, 50, 30, 100, 20, 50];//[100,20,30,50]
var arrSet = new Set(arr);
//arrSet即没有重复元素的数组