js-几种数组去重

63 阅读1分钟
let arr = [1,23,4,1,4,2,5]

1.set和[...]
let newArr1 = [...new Set(arr)]

2.indexOf
let newArr2 = []
for(let i = 0; i < arr.length; i++) {
	if(newArr2.indexOf(arr[i]) === -1) {
		newArr2.push(arr[i])
	}
}

3.filter
arr.filter((item, index) => {
	return arr.indexOf(item) === index
})

4.splice
for(let i = 0; i < arr.length; i++) {
	for(let j = i+1; j < arr.length; j++) {
		if(arr[i] === arr[j]) {
			arr.splice(j,1)
			arr.length--
			j--
		}
	}
}

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

6.map
const map = new Map()
const newArr5 = []
for(let i = 0; i < arr.length; i++) {
	if(!map.has(arr[i])) {
		map.set(arr[i], true)
		newArr5.push(arr[i])
	}
}