美文网首页让前端飞
JS实现数组去重方法总结

JS实现数组去重方法总结

作者: 云淡风轻的成长 | 来源:发表于2018-04-17 18:17 被阅读28次

话不多说,我们这就进入正文。
第一种:使用forEach从传入参数的下一个索引值开始寻找是否存在重复,如果不存在重复则push到新的数组,达到去重的目的。

noRepeat = (repeatArray) => {
    var result = [];
    repeatArray.forEach((value, index ,arr) => {  
        var isNoRepeat = arr.indexOf(value,index+1);  
        if(isNoRepeat === -1){
            result.push(value);
        }
    })
    return result;
};

还可以换一种方式实现,利用新数组,遍历要去重的数组,判断通过遍历的数值是否在新数组里面存在,如果不存在,则push到新数组里面。代码如下:

noRepeat = (repeatArray) => {
    var result = [];
    repeatArray.forEach((value, index ,arr) => {
        if (result.indexOf(value) === -1 ) {
            result.push(value);
        }
    })
    return result;
};

第二种:利用对象的属性不能重复的特点进行去重。

    noRepeat = (repeatArray) => {
        var hash = {};
        var result = [];
        repeatArray.forEach((value, index ,arr) => {
            if (!hash[value]) {
                hash[value] = true;
                result.push(value);
            }
        })
        return result;
    };

第三种:先将数组进行排序,然后通过对比相邻的数组进行去重。

    noRepeat = (repeatArray) => {
        repeatArray.sort();
        var result = [];
        repeatArray.forEach((value, index ,arr) => {
            if (value !== arr[index+1]) {
                result.push(value);
            }
        })
        return result;
    };

第四种:利用ES6的Set新特性(所有元素都是唯一的,没有重复)。需要注意的是,可能存在兼容性问题。

    noRepeat = (repeatArray) => {
        var result = new Set();
        repeatArray.forEach((value, index ,arr) => {
            result.add(value);
        })
        return result;
    };

该方法处理多个数组的去重是相当的好用,代码如下:

let array1 = [1, 2, 3, 4];
let array2 = [2, 3, 4, 5, 6];
let noRepeatArray = new Set([... array1, ... array2]);
console.log('noRepeatArray:', noRepeatArray);

相关文章

  • JS实现数组去重方法总结

    话不多说,我们这就进入正文。第一种:使用forEach从传入参数的下一个索引值开始寻找是否存在重复,如果不存在重复...

  • Array集结号

    实现数组去重的几种方法 数组去重一 数组去重二 利用数组indexof+push实现数组去重 数组去重三 利用对象...

  • JS数组去重常见方法分析

    数组去重是开发中经常会遇到的问题,也是面试时经常会考到的。JS实现数组去重可以有多种方法: 一、简单的去重方法 用...

  • 5.18 总结

    1 数组去重 js数组去重的常用方法总结 2 定时器的返回值是定时器的编号 定时器的执行;(全部js代码执...

  • JS实现数组去重常用的六种方法

    双重for循环去重 includes实现数组去重 indexOf实现数组去重 利用set方法去重 ES6 Arra...

  • web前端面试题-javascript(三)-编程算法题(1)

    答案只做参考,如有更好的方法欢迎留言! 1、 实现数组去重方法?(js算法) 利用对象的键值对方法:把数组中的每一...

  • js中数组去重的方法

    在实际工作或面试中,我们经常会遇到“数组去重”问题,接下来就是使用js实现的数组去重的多种方法: 1.将数组的每一...

  • js方法总结与数组去重

    1 数组去重方法 1.1 Set方法去重 1.2 双重循环 1.3 Array.prototype.indexOf...

  • js数组去重方法的总结

    一般大公司面试的时候,都会问一些常见的问题,但是这些问题看着简单,面试官问了怎么解决后,你说了一种,面试官又问还有...

  • 常见数组操作方法(容易混乱)

    filter方法巧妙实现数组去重

网友评论

    本文标题:JS实现数组去重方法总结

    本文链接:https://www.haomeiwen.com/subject/tyepkftx.html