let repeatArr = [1,1,1,2]
let arr = []
第一种
for(let i = 0; i<repeatArr.length; i++){
for(let j = i+1;j<repeatArr.length;j++){
if(repeatArr[i]==repeatArr[j]){
// 0 1
// 如果 arr[i] == arr[j] --->将 j在i 基础上+1 ,然后再经 j++
// 对比将变成类似 arr[1] == arr[3] 第一项等于了第二项,那么对比就从 第三项开始
j= ++i
console.log(j)
}
}
arr.push(repeatArr[i])
}
第二种
for(let i = 0;i<repeatArr.length;i++){
if(arr.indexOf(repeatArr[i]) == -1){
arr.push(repeatArr[i])
}
}
今天看到第三种,觉得不错
function distinct (arr) {
let result = []
let obj = {}
for( const key in arr ) {
if( !obj[key] ) {
result.push(key)
obj[key] = 1
}
}
return result
}
大体思想都是 没有就添加
使用 reduce 进行数组去重
let arr
= [1,2,3,4,5,5,3,2,4,1,2,3,5,1,2,3,3,4,1]
let arr2
= arr
.reduce((add
,now
)=>{
return add
.includes(now
) ? add
: add
.concat(now
)
},[])