文章目录
- 1. 双重for循环去重
- 2. 对象去重
- 3. Set去重
- 4. includes去重
方法一 :双重for循环
思路:
1、创建一个新数组
2、遍历旧数组
3、将旧数组中的元素push到新数组中
4、如果新数组中有相同的元素就不push
5、遍历新数组。
var arrOld = [2, 3, 4, 5, 3, 6, 4, 2, 7, 5]
var arrNew = []; // 2,3,4,5,6,7
var flag = true;
for (var i = 0; i < arrOld.length; i++) {
flag = true;
for (var j = 0; j < arrNew.length; j++) {
if (arrNew[j] == arrOld[i]) {
flag = false;
}
}
if (flag) {
arrNew.push(arrOld[i]);
}
}
console.log(arrNew);
方法二:对象去重
1. 利用对象属性存在的特性,如果没有改属性则存入新的数组
var arrO = [15, 12, 13, 14, 15, 10, 15, 12, 13]
var arrnew = [] // 10,12,13,14,15,
var obj = {}
for (let a = 0; a < arrO.length; a++) {
obj[arrO[a]] = 1
}
for (let x in obj) {
arrnew.push(x)
}
console.log(arrnew);
方法三:Set去重
var arrold = [1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 5]
// 伪数组转为数组法一:
var arrnew = Array.from(new Set(arrold))
console.log(arrnew);
// 伪数组转为数组法二
var arrnew = new Set(arrold)
console.log(...arrnew);
方法四:includes去重 (includes判断值是否存在,存在返回true,不存在返回false)
思路:
1、创建一个新数组
2、遍历旧数组
3、判断新数组里面如果没有该值就添加进新数组,有就不添加
var arrold = [1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9]
var arrnew = []
arrold.forEach(function (item) {
if (!arrnew.includes(item)) {
arrnew.push(item)
}
})
console.log(arrnew);