1、使用new Set去重
var num = [1, 22, 22, 3, 4, 5, 1]
var newnum = Array.from(new Set(num))
console.log(newnum); // [1, 22, 3, 4, 5]
2、使用for嵌套循环删除重复的值
var num = [1, 22, 22, 3, 4, 5, 1]
for (let index = 0; index < num.length; index++) {
for (let indey = index + 1; indey < num.length; indey++) {
if (num[index] === num[indey]) {
num.splice(indey,1)
index--; //防止数组产生数组塌陷
}}}
console.log(num); // [1, 22, 3, 4, 5]
3、indexof判断新数组是否包含这个相同值 ,如果不等于-1也就是新数组没有这个值就push到新数组中
var newarr=[] //新建一个新数组存储值
for (let index = 0; index < num.length; index++) {
if(newarr.indexOf(num[index]) ===-1 ){ //判断新数组是否包含这个值
newarr.push(num[index])
}
}
console.log(newarr); // [1, 22, 3, 4, 5]
es6中的includes原理差不多 if(newarr.includes(num[index]))
4、使用sort排序后,对相邻2个数据进行比较
var num = [1, 22, 22, 3, 4, 5, 1]
var num= num.sort();
var newarray=[num[0]] //首先要把第一个值赋值到新数组中
console.log(newarray);
for (let index = 1; index < num.length; index++) {
if( num[index] !== num[index-1]){ //第1个和第0个不相同则push到数组中 第一次循环也是相当和新数组的值比较
newarray.push(num[index])
}
}
console.log(newarray); // [1, 22, 3, 4, 5]