JavaScriptの配列量を達成するための一般的な方法

再する方法のJavaScriptの配列

コードの重複排除アレー、一般インタビューの中で、多くの場合に尋ねるか、一般的に手書きの重複排除方法の配列が必要です

、ES5は、最も一般的に使用するため営巣のために使用され、その後、再スプライスをします

function unique(arr){            
  for(var i=0; i<arr.length; i++){
    for(var j=i+1; j<arr.length; j++){
      //第一个等同于第二个,splice() 方法通过删除或替换现有元素或者原地添加新的元素来修改数组,并以数组形式返回被修改的内容。此方法会改变原数组
      if(arr[i]==arr[j]){
        arr.splice(j,1);
        j--;
      }
    }
  }
return arr;
}
var arr = [1,2,3,4,5,6,2,4,6,8];
console.log(unique(arr))
复制代码

第二に、設定の重複排除機能を使用すると、ES6(ES6ための設定方法)

function unique (arr) {
  return Array.from(new Set(arr))
}
var arr = [1,2,3,4,5,6,2,4,6,8];
console.log(unique(arr))
复制代码

互換性は、この重複排除方法コードは、最小であると見なされていないECMAScriptのエントリ。6

第三に、使用のindexOf重複除外

var arr = [1,3,4,5,6,7,4,3,2,4,5,6,7,3,2];
function unique(){
  var newArr = [];
  for (var i = 0; i < arr.length; i++) {
    if (newArr.indexOf(arr[i]) == -1 ) {
      newArr.push(arr[i]);
    }
  }
  console.log(newArr);
}
unique(arr);
复制代码

取得した値が一致しない場合のindexOf()メソッドをもたらし、それは-1を返します。

第四に、使用するソート()

var arr = [1,3,4,5,6,7,4,3,2,4,5,6,7,3,2];
function unique2(arr){
  arr.sort();
  var newArr = [arr[0]],
      len = arr.length;
  for(var i = 1; i < len; i++){
    if(arr[i] !== newArr[newArr.length - 1] ){
      newArr.push(arr[i]);
    }
  }
  return newArr;
}
console.log( unique2(arr) );
复制代码

第五に、オブジェクトのプロパティの重複排除機能の使用

繰り返される場合、配列の各要素は、元の取り出し、及び、オブジェクトプロパティにアクセスされ、それが示します

function unique(arr){
  var res =[];
  var json = {};
  for(var i=0;i<arr.length;i++){
    if(!json[arr[i]]){
      res.push(arr[i]);
      json[arr[i]] = 1;
    }
  }
  return res;
}
var arr = [1,3,4,5,6,7,4,3,2,4,5,6,7,3,2];
console.log(unique(arr))
复制代码

第六に、本方法は、アレイのプロトタイプオブジェクトの使用を含みます

function unique(arr){
 var res = [];
 for(var i=0; i<arr.length; i++){
  if( !res.includes(arr[i]) ){ // 如果res新数组包含当前循环item
   res.push(arr[i]);
  }
 }
 return res;
}
console.log(unique([1,1,2,3,4,5,3,2,3,6,7,4]));
复制代码

おすすめ

転載: blog.csdn.net/weixin_34061482/article/details/91399347
おすすめ