数组去重方法1:用es6的set...扩展运算符

let arr = [1,2,3,4,4,5,2];
console.log([...new Set(arr)]) // [1, 2, 3, 4, 5]

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

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

const s = new Set();

[2, 3, 5, 4, 5, 2, 2].forEach(x => s.add(x));

for (let i of s) {
console.log(i);
}
// 2 3 5 4

扩展运算符(spread)是三个点(...)。它好比 rest 参数的逆运算,将一个数组转为用逗号分隔的参数序列。

console.log(...[1, 2, 3])
// 1 2 3 console.log(1, ...[2, 3, 4], 5)
// 1 2 3 4 5 [...document.querySelectorAll('div')]
// [<div>, <div>, <div>]

=======================================================================

数组去重方法2:用es6的set和数组扩展Array.from

let arr = [1,2,3,4,4,5,2];
console.log(Array.from(new Set(arr))) //[1, 2, 3, 4, 5]

Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。

下面是一个类似数组的对象,Array.from将它转为真正的数组。

let arrayLike = {
'0': 'a',
'1': 'b',
'2': 'c',
length: 3
}; // ES5的写法
var arr1 = [].slice.call(arrayLike); // ['a', 'b', 'c'] // ES6的写法
let arr2 = Array.from(arrayLike); // ['a', 'b', 'c']
 

最新文章

  1. C#_技巧:字符串分组排序
  2. ubuntu静态DNS配置,重启继续生效
  3. Karma:2. 集成 Karma 和 mocha 进行单元测试
  4. 01背包问题:Charm Bracelet (POJ 3624)(外加一个常数的优化)
  5. 用MSoffice里的绘图工具
  6. Win7/8下提示OpenSCManager failed 拒绝访问
  7. 《foreach循环示例》
  8. 企业应用架构模式阅读笔记 - Martin Fowler
  9. MySQL之建设工程监管信息系统
  10. 《linux 网卡别名的添加和绑定》RHEL6
  11. 关于join算法的四篇文章
  12. HTML select 操作
  13. display:table- cell属性的练习
  14. Windows Bridge for iOS: Let’s open this up
  15. 【hihoCoder第十四周】无间道之并查集
  16. poj 1157 LITTLE SHOP_简单dp
  17. known good die( KGD) /确认好裸芯片,合格芯片
  18. SQL窗体函數一例
  19. bat(批处理文件)初步 第一篇 基本符号
  20. STM32伺服编码器接口

热门文章

  1. 利用Runtime对Ivar实例变量进行共用的归档和解档方式
  2. 【MySQL报错】ERROR 1290 (HY000): The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
  3. 洛谷 P2176(最短路)
  4. RadioButtonList
  5. 数据库——SQL SERVER Transact-SQL 程序设计
  6. win10启动telnet
  7. vs code搭建Django环境
  8. Maven项目 - OpenFeign使用细节 - 从此和httpClient说再见
  9. Java性能 -- Lock优化
  10. CSS @规则