本文摘自PHP中文网,作者青灯夜游,侵删。
本篇文章给大家介绍一下ES6中数组去重的两种方式。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。相关推荐:《javascript视频教程》
ES6中数组去重的两种方式
方法一:
1 2 3 4 |
|
就这么短,就可以了,我们来解释一下为什么。
Map对象
Map是ES6 提供的新的数据结构。
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
下表列出了 Map 对象的方法。
方法 | 描述 |
---|---|
clear | 删除所有的键/值对,没有返回值。 |
delete | 删除某个键,返回true。如果删除失败,返回false。 |
forEach | 对每个元素执行指定操作。 |
get | 返回Map对象key相对应的value值。 |
has | 返回一个布尔值,表示某个键是否在当前 Map 对象之中。 |
set | 给Map对象设置key/value 键/值对。 |
Map对象还有一个size属性,他返回Map对象的键/值对的数量。
数组的 filter() 方法
filter() 方法创建一个新的数组,新数组中的元素 是 通过检查 指定数组 中 符合条件的所有元素。
语法:
1 |
|
参数说明:
箭头函数
1 2 3 4 5 |
|
1、箭头函数写代码拥有更加简洁的语法;
2、不会绑定this。
了解更多,点这里
方法一 分析
1 2 3 4 5 6 7 8 |
|
方法二:
1 2 3 |
|
这个方法的代码量更少,简直不可思议。
数组的 from方法
Array.from() 方法从一个类似数组或可迭代的对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等) 中创建一个新的数组实例
语法:
1 |
|
参数 | 描述 |
---|---|
arrayLike | 必需,想要转换成真实数组的类数组对象或可迭代的对象。 |
mapFn | 可选,如果指定了该参数,则最后生成的数组会经过该函数的加工处理后再返回。 |
thisArg | 可选,执行 mapFn 函数时 this 的值。 |
示例代码:
1 2 3 4 5 6 |
|
Set对象
Set 对象允许你存储任何类型的 唯一值 ,无论是原始值或者是对象引用。
Set对象是值的集合,你可以按照插入的顺序迭代它的元素。
Set中的元素只会出现一次,即 Set 中的元素是唯一的。
语法:
1 |
|
参数:
iterable,如果传递一个可迭代对象(包括 Array,Map,Set,String,TypedArray,arguments 对象等等),它的所有元素将被添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。
下表列出了 Set 对象的方法。
方法 | 描述 |
---|---|
add | 添加某个值,返回Set对象本身。 |
clear | 删除所有的键/值对,没有返回值。 |
delete | 删除某个键,返回true。如果删除失败,返回false。 |
forEach | 对每个元素执行指定操作。 |
has | 返回一个布尔值,表示某个键是否在当前 Set 对象之中。 |
Set对象和Map对象一样,都有一个size属性,他返回Set对象的值的个数。
方法二 分析
1 2 3 4 5 |
|
总结
这次说的两个方法,真的很简单,主要就是靠ES6里的新东西,难度不大,代码简单,主要就是多用用就好了。
经人提醒,再补充一种,[...new Set(arr)]
不懂 ...
的朋友,可以看这里 js扩展运算符
更多编程相关知识,请访问:编程学习!!
以上就是了解ES6中数组去重的两种方式的详细内容,更多文章请关注木庄网络博客!
相关阅读 >>
javascript中localstorage的用法注意点介绍
更多相关阅读请进入《javascript》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者