为了账号安全,请及时绑定邮箱和手机立即绑定

js之数组去重的方法

标签:
JavaScript

数组去重?即去除数组中重复的元素...

 

首先第一种方法就是利用set集合的特性实现去重(其实set用法很多,有兴趣的可以多去了解下);

  那什么是set集合呢?set集合是一种新的数据存储格式;

  set语法:new Set()

    参数:一个数组

set集合可以称为史上最快的一种去重方式,如下:

var arr = [1, 2, 3, 4, 5, 5, 4, 3, 2, 1 ];var set = new Set(arr);
console.log(set)

第二种方法则是先封装好一个函数判断数组中是否存在某个值,然后再利用这个原理进行数组去重;代码如下:

复制代码

//判断数组中是否存在某个值function has(arr, n){    var bStop = false;    for(var i in arr){        if(arr[i] == n){
            bStop = true;            break;
        }
    }    return bStop;
}function norepeat2(arr){    var newArr = [];    for(var i in arr){        if(!has(newArr, arr[i])){
            newArr.push(srr[i])
        }
    }    return newArr;
}

复制代码

第三种方法呢,则是利用es5中新增的方法indexOf去重;

  indexOf()作用:判断某个字符是否存在。如果存在,则返回相对应的下标,不存在则返回-1;

  究竟怎么实现呢,相信小可爱们都已经想到了~代码如下:

复制代码

function norepeat3(arr){    //创建好一个新的数组
    var newArr = [];    //循环遍历arr
    for(var i in arr){        //判断新数组,如果不存在arr的第i个,不存在则添加到新数组当中
        if(newArr.indexOf(arr[i]) == -1){
            newArr.push(arr[i])
        }
    }    return newArr
}

复制代码

第四种方法则利用sort排序,创建一个新的数组然后传入原数组的第0个;循环遍历的时候要注意i的初始值从1开始。代码如下:

复制代码

Array.prototype.norepeart4 = function(){    //先排序
    this.sort();    //创建一个新的数组并存入数组的第0个
    var newArr = [this[0]];    //循环遍历传入的数组
    for(var i = 1;i<this.length;i++){        //利用每个新数组中值与传入数组的第i个进行计较,不存在则push到新数组中
        if(newArr[newArr.length-1] != this[i]){
            newArr.push(this[i])
        }
    }    //返回新的数组
    return newArr;
}

复制代码

只有想不到没有写不出!数组去重的方法很多很多,在这里就简单的列举四种。望大家喜欢(嘻嘻)

 

原文出处

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消