数组去重

作者: 小小_绿 | 来源:发表于2019-08-09 00:14 被阅读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;

    }

    相关文章

      网友评论

        本文标题:数组去重

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