js数组去重

作者: whiteMu | 来源:发表于2019-08-14 11:03 被阅读3次

关于数组去重的几种方案:
1.利用Array.indexOf()的方法,判断新数值里是否已经包含了原数组的元素,包含了就不放入新数组,未包含则将元素加入新数组。

function fun1(arr){
        var newArr = [];
        for(var i = 0;i<arr.length;i++){
            if(newArr.indexOf(arr[i]) == -1){
                newArr.push(arr[i]);
            }
        }
        return newArr;
}

2.利用对象的属性不能重复定义去重重复的元素

function fun2(arr){
    var obj = {};
    var newArr = [];
    for(var i = 0;i<arr.length;i++){
        if(!obj[arr[i]]){
            newArr.push(arr[i]);
            obj[arr[i]] = 1;
        }
    }
    return newArr;
}

3.先对数组进行排序后,对数组相邻两位进行比较,相等则不push到新数组(此方法更改了原数组)

function fun3(arr){
    var newArr = [];
    arr.sort(function(a, b){
        return a - b;
    })
    newArr.push(arr[0]);
    for(var i = 0;i<arr.length;i++){
        if(arr[i] != newArr[newArr.length - 1]){
            newArr.push(arr[i]);
        }
    }
    return newArr;
}

4.利用ES6的新增Set对象,Set会保留任何数据类型的唯一值,并返回一个伪数组

function fun4(arr){
    var newArr = new Set(arr);
    return Array.from(newArr);
}

相关文章

  • 数组的去重和数组中对象的去重

    数组中对象去重 方式1 jq方式 方式2 原生js方式 普通数组的去重 方式1 普通的数组去重js 方式2 Se...

  • js数组去重、对象数组去重

    普通数组去重 一、普通数组去重 方法一:遍历数组法 方法二:排序法 方法三:对象法 对象数组去重 方法一:将对象数...

  • js数组去重

    Set结构去重 ES6 提供了新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。 向 Se...

  • JS数组去重

    方法1:两层for循环,外层循环原数组,内层循环时进行比较。 方法2:利用对象的属性不能相同的特点去重 方法3:利...

  • js数组去重

  • js数组去重

    1.利用对象的属性唯一性去重 2.利用es6的Set

  • js数组去重

  • js 数组去重

  • JS数组去重

    方法一:遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组 ...

  • js数组去重

    方法一 (es6 set方法,简单粗暴) 方法二 创建空数组,用indexOf方法检索,没有的话插入新数组中 方...

网友评论

    本文标题:js数组去重

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