常用的几种方式
- 传统方式,遍历元素,挨个比较去重
function unique(arr) {
const res = []
arr.forEach(item => {
if (res.indexOf(item) < 0) {
res.push(item)
}
})
return res
}
console.log(unique([1,2,3,3,4,5,2])) //[1, 2, 3, 4, 5]
- 使用Set
// Set 对象允许你存储任何类型的唯一值,无论是原始值或者是对象引用
// Set 中的元素只会出现一次,即 Set 中的元素是唯一的。
function unique(arr) {
const set = new Set(arr)
// 解构set,然后返回
return [...set]
}
console.log(unique([1,2,3,3,4,5,2])) //[1, 2, 3, 4, 5]
- 考虑计算效率,最好用第二种方式,但是要看使用环境,第二种方法会有一定的兼容性问题。第一种方法效率低一些,但是如果数据量不大,两种方法相差不多
网友评论