数组去重
作者:互联网
1.遍历+indexof
思路:创建新素组,遍历需要去重的数组,通过indexOf查找arr2里的值,把没有的值添加到新数组
(此方法无法对NaN去重)
indexOf() 方法:返回匹配到值的索引,没有则返回-1
let arr1 =[1,2,3,3,3,4,4,5]
let arr2=[]
for(let i of arr1 ){
if(arr2.indexOf(i)===-1){
arr2.push(i)
}
}
2.includes 和indexof一样,但是他可以判断NaN
3.双重for循环去重
原理 两两比较如果相等的话就删除第二个
例如: 1,2,3,4,5,3,7,8
先让第一个1 即arr[0]与后面的一个个比较 如果后面的值等于arr[0] 删除后面的值
第一次结束后的结果是 1,2,3,4,5,7,8 删除了后面所有的3
同理 第二次 第三会删除与自己相同的元素
4.利用Set()+Array.from()
const arr = [1, 2, 2,
'abc'
,
'abc'
,
true
,
true
,
false
,
false
, undefined, undefined, NaN, NaN]
- Set对象:是值的集合,你可以按照插入的顺序迭代它的元素。 Set中的元素只会出现一次,即Set中的元素是唯一的。
- Array.from() 方法:对一个类似数组或可迭代对象创建一个新的,浅拷贝的数组实例。
const result = Array.from(
new
Set(arr))
console.log(result)
// [ 1, 2, 'abc', true, false, undefined, NaN ]
标签:arr,Set,false,NaN,arr2,数组 来源: https://www.cnblogs.com/chuge/p/16505452.html