js数组去重的4种简便方法

1.利用set集合对象的值是唯一的特新

https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Set

var arr = [1,4,5,3,2,1,4,2,2];

var newArr = [...new Set(arr)];

2.正则数组去重 (方法不错)

 Array.prototype.unique3=function(){
           return this.sort().join('').replace(/(.).*\1/g,"$1").split('');
         
        }

3. 遍历查找,通过新的数组保存非重复的值

function removeRepeat1(data) {
    var result = [];

    data.forEach(function(value) {
        if ( !result.includes(value) ) {
            result.push(value);
        }
    });

    return result;
}

4. 利用对象key不重复的特性,把值做对象key进行存储

function removeRepeat2(data) {
    var obj = {};
    var result = [];

    data.forEach(function(value) {
        obj[value] = 1; //对象的值并不重要,所以给任何的值都行
    });

    //最后obj的key就是我们要的不重复的数据
    for (var key in obj) {
        result.push(Number(key));
    }

    return result;

}

5. 遍历比较,删除重复的值

function removeRepeat3(data) {

    for (var i=0; i<data.length; i++) {

        for (var j=i+1; j<data.length; j++) {
            if (data[i] == data[j]) {
                data.splice(j, 1);
                j--;
            }
        }

    }

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

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,010评论 19 139
  • 本文为原创,作者为Mozilla Web、Jason Orendorff,译者为Lenville。未经许可,拒绝任...
    尾尾阅读 5,012评论 1 20
  • 强大的for-of循环 ES6不会破坏你已经写好的JS代码。目前看来,成千上万的Web网站依赖for-in循环,其...
    Awe阅读 7,535评论 2 7
  • 一、基本数据类型 注释 单行注释:// 区域注释:/* */ 文档注释:/** */ 数值 对于byte类型而言...
    龙猫小爷阅读 4,292评论 0 16
  • 这世界如此的吵闹,把我从睡眠中唤醒 我多想有个能减声音的遥控 让我安静的睡觉
    豆子豆豆阅读 115评论 0 0