数组去重的的方法

2020-11-11  本文已影响0人  黑白说程序

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] 
上一篇 下一篇

猜你喜欢

热点阅读