前端之路

数组去重

2019-08-09  本文已影响0人  小小_绿

1、ES6去重方法:

I、使用Set

Array.from() 方法从一个类似数组或可迭代的对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等) 中创建一个新的数组实例

function unique (arr) {

  return Array.from(new Set(arr))

}

这种方法无法去掉“{}”空对象

例如:[1,2,3,'1',1,null,null,{}]

II、使用Map

Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。

function unique(arr) {

    const res = new Map();

    return arr.filter((a) => !res.has(a) && res.set(a, 1))

}

2、使用对象去重,对象的key值唯一性

let arr = ['1','2',11,3,3,4,5,4];

let obj = {};

for (let item of arr){

obj[item]=item;        

}

let uniqueArr = Object.valueof(obj);

3、for循环

function unique(arr) {

        var rets = [];

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

                if (!rets.includes(arr[i])) {

                        rets.push(arr[i]);

                    }

            }

        return rets;

// 方法二: forEach方法实现

function unique(arr) {

    var rets = [];

    arr && arr.forEach(function(item){

        if (!rets.includes(item)){

            rets.push(item);

        }

    });

    return rets;

}

上一篇下一篇

猜你喜欢

热点阅读