配列の重さ除去にはいくつかの方法がありますか?

588 ワード

方法一:遍歴比較
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]
方法二:ES 6:Set
set ES 6は、新しいデータ構造Setを提供する.配列に似ていますが、メンバーの値は全部唯一で、重複した値はありません.Set自体はSetデータ構造を生成するためのコンストラクターである.Set関数は、パラメータとして1つの配列を初期化することができます.
function unique(arr){
    return [...new Set(arr)]
}
console.log(unique([20, 30, 30, 50, 4, 4]))
まとめ:両者は比較して、エルゴード法は2層を経て遍歴する必要があり、相対的にset法を使う方が性能が優れています.