美文网首页
一行代码实现数组去重(ES6)

一行代码实现数组去重(ES6)

作者: 明明明明如月 | 来源:发表于2018-10-23 08:38 被阅读0次

    一行代码实现数组去重(ES6)

    ES6中新增了Set数据结构,类似于数组,但是它的成员都是唯一的,其构造函数可以接受一个数组作为参数,如:

    let array = [1,1,1,1,2,3,4,4,5,3];let set =newSet(array);console.log(set);// => Set {1, 2, 3, 4, 5}

    ES6中Array新增了一个静态方法Array.from,可以把类似数组的对象转换为数组,如通过querySelectAll方法得到HTML DOM Node List,以及ES6中新增的Set和Map等可遍历对象,如:

    let set =newSet(); set.add(1).add(2).add(3);let array =Array.from(set);console.log(array);// => [1, 2, 3]

    于是,现在我们可以用一行代码实现数组去重了:

    let array =Array.from(newSet([1,1,1,2,3,2,4]));console.log(array);// => [1, 2, 3, 4]

    ES5

    // 最简单数组去重法

    /*

    * 新建一新数组,遍历传入数组,值不在新数组就push进该新数组中

    * IE8以下不支持数组的indexOf方法

    * */

    function uniq(array){

        var temp = []; //一个新的临时数组

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

            if(temp.indexOf(array[i]) == -1){

                temp.push(array[i]);

            }

        }

        return temp;

    }

    var aa = [1,2,2,4,9,6,7,5,2,3,5,6,5];

    console.log(uniq(aa));

    相关文章

      网友评论

          本文标题:一行代码实现数组去重(ES6)

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