数组去重的几种方法
数组 [1,1,2,3,2,3]
去重变成 [1, 2, 3]
的多种方法
Array.from() + new Set() (es6新增)
Array.from()文档
Set()文档1
2
3function unique(arr) {
Array.from(new Set(arr))
}
扩展运算符 + new Set()
1 | arr = [...new Set(arr)] |
Array.prototype.includes() (es6新增)
filter()文档1
2
3
4
5
6
7
8
9function unique(arr) {
var newArr = []
arr.forEach(item => {
if(!newArr.includes(item)) {
newArr.push(item)
}
})
return newArr
}
Array.prototype.filter() (es5新增)
filter()文档1
2
3
4
5function unique(arr) {
return arr.sort().filter((item,index,arr) => {
return item !== arr[index+1]
})
}
Array.prototype.splice()
splice()文档1
2
3
4
5
6
7
8function unique(arr) {
arr.sort().forEach((item,index) => {
if(arr[index] === arr[index++]) {
arr.splice(index,1)
}
})
return arr
}
一个实践例子
1 | // example |