用最简洁的实现数组去重

Posted Back to Reff.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用最简洁的实现数组去重相关的知识,希望对你有一定的参考价值。

【解析】

Set

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

Set 本身是一个构造函数,用来生成 Set 数据结构。

向Set加入值的时候,不会发生类型转换,所以5"5"是两个不同的值。Set内部判断两个值是否不同,使用的算法叫做“Same-value equality”,它类似于精确相等运算符(===),主要的区别是NaN等于自身,而精确相等运算符认为NaN不等于自身。

Set 实例的方法分为两大类:操作方法(用于操作数据)和遍历方法(用于遍历成员)。下面先介绍四个操作方法。

  • add(value):添加某个值,返回Set结构本身。
  • delete(value):删除某个值,返回一个布尔值,表示删除是否成功。
  • has(value):返回一个布尔值,表示该值是否为Set的成员。
  • clear():清除所有成员,没有返回值。

参考:http://es6.ruanyifeng.com/#docs/set-map

filter()

array.filter(function(currentValue,index,arr), thisValue)

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

注: filter() 不会对空数组进行检测, 不会改变原始数组。

thisValue可选。对象作为该执行回调时使用,传递给函数,用作 "this" 的值。
如果省略了 thisValue ,"this" 的值为 "undefined"

参考:http://www.runoob.com/jsref/jsref-filter.html

 

以上是关于用最简洁的实现数组去重的主要内容,如果未能解决你的问题,请参考以下文章

使用reduce的方法实现对象数组去重

js简洁代码片段

简洁的数组去重并排序

用最简洁的 CSS 实现 10 种现代布局

es6的一些简洁写法(代码优化)

复习数组去重