JavaScript实现数组去重的7种方法
在JavaScript中,实现数组去重是一个常见的需求。下面介绍7种实现数组去重的方式。
1.使用 Set
使用ES6中的Set对象可以方便地实现数组去重,使用Set之后,将数组转换为Set之后,再将Set转换为数组即可。
const arr = [1, 2, 1, 2, 3]
const newArr = Array.from(new Set(arr))
console.log(newArr) // [1, 2, 3]
2.使用for循环和indexOf
通过遍历原数组,将不重复的元素添加到新数组中实现去重。
const arr = [1, 2, 1, 2, 3]
const newArr = []
for(let i=0; i<arr.length; i++) {
if(newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
console.log(newArr) // [1, 2, 3]
3.使用for循环和includes
使用ES6中的includes方法可以判断元素是否在数组中,配合for循环实现数组去重。
const arr = [1, 2, 1, 2, 3]
const newArr = []
for(let i=0; i<arr.length; i++) {
if(!newArr.includes(arr[i])) {
newArr.push(arr[i])
}
}
console.log(newArr) // [1, 2, 3]
4.使用reduce
使用reduce方法进行去重处理。
const arr = [1, 2, 1, 2, 3]
const newArr = arr.reduce((prev, cur) => {
if(!prev.includes(cur)) {
prev.push(cur)
}
return prev
}, [])
console.log(newArr) // [1, 2, 3]
5.使用filter
使用filter方法配合indexOf方法实现数组去重。
const arr = [1, 2, 1, 2, 3]
const newArr = arr.filter((item, index) => arr.indexOf(item) === index)
console.log(newArr) // [1, 2, 3]
6.使用ES6中的Map
通过使用ES6中的Map对象,可以实现数组去重。
const arr = [1, 2, 1, 2, 3]
const map = new Map()
const newArr = []
for(let i=0; i<arr.length; i++) {
if(map.has(arr[i])) {
map.set(arr[i], true)
} else {
map.set(arr[i], false)
newArr.push(arr[i])
}
}console.log(newArr) // [1, 2, 3]
7.使用对象键值对
使用对象键值对实现数组去重。
const arr = [1, 2, 1, 2, 3]
const obj = {}
const newArr = []
for(let i=0; i<arr.length; i++) {
if(!obj[arr[i]]) {
obj[arr[i]] = true
newArr.push(arr[i])
}
}
console.log(newArr) // [1, 2, 3]
示例说明
以第一个方法为例,数组[1, 2, 1, 2, 3]通过使用Set对象,先将数组转换为Set对象,再将Set对象转换为数组,从而实现数组去重,输出结果为 [1, 2, 3]。
const arr = [1, 2, 1, 2, 3]
const newArr = Array.from(new Set(arr))
console.log(newArr) // [1, 2, 3]
再以第三个方法为例,使用for循环和includes方法进行遍历和去重,输出结果同样为[1, 2, 3]。
const arr = [1, 2, 1, 2, 3]
const newArr = []
for(let i=0; i<arr.length; i++) {
if(!newArr.includes(arr[i])) {
newArr.push(arr[i])
}
}
console.log(newArr) // [1, 2, 3]
以上为对“JavaScript实现数组去重的7种方法”的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:JavaScript实现数组去重的7种方法 - Python技术站