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

一行代码实现数组去重(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));

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • ES6语法跟babel: 一、首先我们来解释一下什么是ES? ES的全称是ECMAScript。1996 11 ,...
    Mooya_阅读 1,166评论 0 0
  • 转载:在开发中,数组的使用场景非常多,平日中也涉及到很多数组的api/相关操作,一直也没有对这块内容进行一块整理总...
    七色烟火阅读 3,412评论 0 3
  • 1、新的声明方式 以前我们在声明时只有一种方法,就是使用var来进行声明,ES6对声明的进行了扩展,现在可以有三种...
    令武阅读 1,098评论 0 7
  • *node下用express框架,实现一个简单的mvc *构建工具:gulp / babel / webpack ...
    韩娜爱吃辣_前端程序媛阅读 1,220评论 0 1
  • 敬爱的李老师,智慧的教授,亲爱的家人们: 大家好!我是来自长兴南方眼视光中心的杨军微,我是王院长的人。今天...
    杨军微阅读 269评论 0 1

友情链接更多精彩内容