Heim  >  Artikel  >  Web-Frontend  >  Ausführliche Erläuterung der Javascript-Array-Deduplizierung und Beispiele für schnelle Sortieralgorithmen

Ausführliche Erläuterung der Javascript-Array-Deduplizierung und Beispiele für schnelle Sortieralgorithmen

伊谢尔伦
伊谢尔伦Original
2017-07-24 09:23:211994Durchsuche

Array-Deduplizierung

Prinzip: Definieren Sie ein Objekt obj, verwenden Sie dann das Array-Element als Attributnamen von obj und verwenden Sie, ob der Attributname wiederholt wird, um die Duplizierung zu bestimmen


var unique = function(arr){
  let obj = {};
  let newArr = [];
  arr.forEach(function(x){
    if(!obj[x]){ //如果对象中没有该元素对应的属性
      obj[x] = true;
      newArr.push(x);
    }
  });
  return newArr;
}

Verwenden Sie den Schnellsortierungsalgorithmus, um das Array zu sortieren

Dies umfasst zwei Effekte, einer besteht darin, die Eigenschaften von zu verwenden Schnelle Sortierung, um eine Deduplizierung zu erreichen. Schnelle Sortierung, die andere ist schnelle Sortierung ohne Gewichtsentfernung.

Prinzip: Erhalten Sie das Zielarray, wählen Sie ein Element als Flag aus, durchlaufen Sie die verbleibenden Elemente, platzieren Sie die Elemente rechts größer als das Flag und links kleiner als das Flag.

Besonderer Hinweis: Es gibt Elemente, die dem Flag-Bit entsprechen, wenn Sie gleiche Elemente speichern. Wenn Sie sie speichern, werden sie nicht dedupliziert.


var quickSort = function(arr){
  if(arr.length <= 1){
    return arr;
  }
  //定义一个左数组,定义一个右数组
  let leftArr = [];
  let rightArr = [];
  //选定一个参照值
  let tag = arr[0];
  /*
   * 使用如下方式判断,会把重复元素去掉,就实现了快排的同时去重
   */
  for(let i = 0; i < arr.length; i++){
    if(arr[i] < tag){ //将比tag小的元素放在左数组中
      leftArr.push(arr[i]);
    }
    if(arr[i] > tag){ //将比tag大的元素放在右数组中
      rightArr.push(arr[i]);
    }
  }
  /*
   * 使用如下方式就是使用快排进行排序,不去重
   */
  for(let i = 1; i < arr.length; i++){
    if(arr[i] < tag){ //将比tag小的元素放在左数组中
      leftArr.push(arr[i]);
    }else{ //将比tag大的元素放在右数组中
      rightArr.push(arr[i]);
    }
  }
  //递归调用
  return [].concat(quickSort(leftArr),[tag],quickSort(rightArr));
}

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung der Javascript-Array-Deduplizierung und Beispiele für schnelle Sortieralgorithmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn