js数组去重

61 阅读1分钟

new Set 去重

const arr = [1,2,3,4,4,4]
console.log([...new Set(arr)])   // 输出 [1,2,3,4]

reduce 去重

const arr = [1,2,3,4,4,4]
// reduce(pre,cur,index,arr) per上一次的值,cur当前的值,index下标,arr原数组
const arr2 = arr.reduce((pre,cur)=>{
	pre.indexOf(cur) === -1 && pre.push(cur)
	return pre
},[])

console.log(arr2)  // 输出 [1,2,3,4]

filter 去重

const arr = [1,2,3,4,4,4]
const arr2 = arr.filter((item,index,arr)=>(arr.indexOf(item)===index))
console.log(arr2)  // 输出 [1,2,3,4]

for 循环去重

const arr = [1,2,3,4,4,4]
arr.sort()
let arr2

for(let i = 0 ; i<arr.length;i++){
	if(arr[i+1] !== arr[i]){
		arr2.push(arr[i])
	}
}

console.log(arr2)  // 输出 [1,2,3,4]