前言:
我希望我的希望不再是希望
正文:
实现去重的主人翁-----set和Array.from
set是一种新的数据结构,它可以接收一个数组或者是类数组对象,自动去重其中的重复项目。
1.在ts中:
constructor() {
let arr = ['杨晓风','杨晓风','linda','linda',null,null,undefined,undefined,NaN,NaN];
console.log(new Set(arr));
}
2.效果图:
重复的项目已经被去掉了,包括NaN。正常情况下,NaN === NaN 返回的是false,但是在set里,一样能够去重 ,然而,效果图中我们发现set返回的是一个对象,并没有得到我们想要的数组。接下来Array.from帮你解决
Array.from可以把类数组对象、可迭代对象转化为数组:
1.编辑代码
constructor() {
let arr = ['杨晓风','杨晓风','linda','linda',null,null,undefined,undefined,NaN,NaN];
let newArr = Array.from(new Set(arr))
console.log(newArr);
}
2.效果图:
结语:
此方法甚好,但存在兼容性问题,目前主流的浏览器,Chrome,Firfox,Opera,Safari,包括微软的Edge,都是支持的,唯独IE系列不支持。要慎用哦。