数组去重有几种方式?

方法一:遍历比较
function unique(arr) {
    const res=[]
    arr.forEach(item => { //数组遍历
       if (res.indexOf(item) < 0) { //数组遍历
           res.push(item)
       }
    });
    return res
}
unique([20, 30, 30, 50, 4, 4]) //[20, 30, 50, 4]
方法二:ES6:Set

set ES6 提供新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值。
Set本身是一个构造函数, 用来生成 Set 数据结构。
Set函数可以接受一个数组作为参数用来初始化。

function unique(arr){
    return [...new Set(arr)]
}
console.log(unique([20, 30, 30, 50, 4, 4]))

总结:两者比较,遍历方法需要经过两层遍历,相对来说使用set方法性能更优。

你可能感兴趣的:(数组去重有几种方式?)