配列の重複を省く簡単な方法
プリミティブ値
- 数字
- 文字列
- 真偽値
//重複を省きたい配列constold_array=[1,1,1,2,2,2,3,4];constnew_array=[...newSet(old_array)]console.log(new_array);// [1, 2, 3, 4]
Set
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Set
Object
やりかた
- ソートします。
- 隣接するObjectと比較して重複しているなら省く。
以上
実践
constold_array=[{k:3},{k:1},{k:2},{k:3},{k:1},{k:2},{k:3},{k:3}];//ソートold_array.sort((o1,o2)=>o1.k-o2.k);//何を重複とするか決める。//今回だとkの値が一緒だと重複と見なします。functioncompare(o1,o2){returno1.k===o2.k}//あとは、隣と比較して同じだったら省くだけ!constnew_array=old_array.filter(function(element,index,array){if(index===0)returntrue;return!compare(element,array[index-1])})console.log(new_array)// [{"k":1},{"k":2},{"k":3}]