JavaScript配列の重い方法のまとめ

2246 ワード

一:[…new] Set(arr)とアラy.from(new Set(arr))
ES 6方法は、互換性を考慮しない限り、コードが最も少ない.空のオブジェクトを削除できませんでした{}
二層for循環入れ子、また配列方法spliceを利用して重複項目を削除します.
var unRepeat = function(arr){
      for(var i = 0;i 
 
ES 5の一般的な方法は、外層循環要素、内層循環値を用いて比較し、配列方法spliceは同じ値を削除する(splice方法は元の配列を修正する).
三:配列方法indexof
 
 var unRepeat = function(arr){
      var array = []
      for(var i=0;i 
 
 
4:sort並べ替えは重いです.
 
var unRepeat = function(arr){
     var arr = arr.sort()
     var array = [arr[0]]
     for(var i=1; i 
 
5:include方法を利用する  (bootlean値を返します)コードは上記のindexofと似ています.
六:ハスOwnPropertyを使う
var unRepeat = function(arr){
      let obj = {}
      return arr.filter((item,index,arr)=>{
        return obj.hasOwnProperty(typeof item + item) ? false :(obj[typeof item + item] = true) //typeof "wo" + "wo" => "stringwo"
      })
    }
hasOwnPropertyを利用して対象属性があるかどうかを判断し、filterを結合して配列に戻ります.この方法は上記と違って空のオブジェクトも重くすることができます.
七:filterとindexofを組み合わせて重さを取ります.
var unRepeat = function(arr){
      return arr.filter((item,index,array) =>{
        return array.indexOf(item,0) == index
      })
    }