ECMAScript6 新思想实现数组去重

0x01 代码实现

// array
let arr = [1,1,'s','s',NaN,NaN,true,true,false,false,null,null,undefined,undefined];

// 该函数用来去重
const _arr = (arr = []) => Array.from(new Set(arr));

// 验证
console.log(_arr(arr));

0x02 代码分析

根据ES6的新特性,只用了一行代码就可以实现数组去重:

  • ES6 提供了新的数据结构 Set,它类似于数组,但是其成员都是唯一的,所以通过 new Set(arr) 可以得到去重的数据结构
  • Array.from(),该方法可以将类数组结构(例如 Set)转化为数组,所以通过 Array.from(new Set(arr)) 就可以得到去重的数组了
  • 注意:这种方法适用于包含基础数据类型的数组,包含混合数据类型的数组不适用
// array
let arr = [{},{},{},[],[]];//包含Object,Array

// 该函数用来去重
const _arr = (arr = []) => Array.from(new Set(arr));

// 验证,不适用类似的数组
console.log(_arr(arr));//[{},{},{},[],[]]

作者 小菜荔枝 转载请联系作者获得授权

你可能感兴趣的:(ECMAScript6 新思想实现数组去重)