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));//[{},{},{},[],[]]
简书作者 小菜荔枝 转载请联系作者获得授权
网友评论