ES6数组去重的最佳实践:Set结合Array.from() | 拓展运算符结合 Set

前言

ES5及之前大多都是用遍历和算法来实现数组去重,在ES6有一个更为简便的方式。ES6之Set,Array.from, …

实践

Set + Array.from()

这里使用的是Set的一个特性,集合中不会包含重复项。结合Array.from()实现数组去重 ,看图

这里写图片描述

从图中看出,经过转化的数组是可以正常数组操作的。那么多赋值可以精简为两条代码或走一条;

var set1 = Array.from(new Set([1,1,2,2,33,'33',44,'44'
]))

//Array.from是个好东东,抽空再写详细点的文章
//可以把类数组对象(array-like obj)和可迭代对象(iterable objects -- eg:Map or Set)转为常规数组。。。

...[拓展运算符] + Set

这里写图片描述

/**
* ...拓展运算符,是遍历Symbol.iterator 
* 和for...of一样的遍历方法
*/
var tt  = [...new Set([5,5,6,6,8,])] // 5,6,8

总结

一直想写个ES6特性的系列文章,整理了一段时间,不想写概而全的纯理论,只想写一些贴近工作的,
最常用到的,比如块级作用域,箭头函数,字符串模板等等—敬请期待

上面那两个方法并不是万能的,只能作为常规的数组去重,因为涉及到对象或者多维数组的去重,
还是需要其他一些方法来辅助,该遍历遍历,该比较还是得比较。

crper CSDN认证博客专家 掘金共建者 CSDN博客专家
对设计、交互、产品都有自己的见解和追求;更多关于我:https://www.yuque.com/crper/blog/about_me
已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 猿与汪的秘密 设计师:白松林 返回首页