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 ]
浙公网安备 33010602011771号