数组去重的的方法

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] 
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。