Heim  >  Artikel  >  Web-Frontend  >  Welche Methoden gibt es, um Duplikate aus JS-Arrays zu entfernen? Zusammenfassung der Methoden zur Deduplizierung von JS-Arrays (Beispiel)

Welche Methoden gibt es, um Duplikate aus JS-Arrays zu entfernen? Zusammenfassung der Methoden zur Deduplizierung von JS-Arrays (Beispiel)

不言
不言Original
2018-08-17 17:04:112253Durchsuche

In diesem Artikel erfahren Sie, welche Methoden es gibt, um Duplikate aus JS-Arrays zu entfernen. Eine Zusammenfassung der js-Array-Deduplizierungsmethoden (Beispiele) hat einen gewissen Referenzwert. Ich hoffe, dass sie für Sie hilfreich ist.

Die einfachste Schreibweise ist die Verwendung von indexOf()

var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
//比较常规的语法使用indexOf来判断是否已经存在
getFileArray(arr)
function getFileArray(arr){
  var array = [];
  arr.forEach(e => {
    if(array.indexOf(e) !== -1){
      return;
    }else {
      array.push(e)
    }
  });
  return array;
}

Eine Entfernungsmethode, die eine gute Leistung zu haben scheint

// 通过遍历每次被值给到数组角标 适用于数组里面数量不太的数组
var arr = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
getFilterArray(arr)
function getFilterArray (array) {
    const res = [];
    const json = {};
    for (let i = 0; i < array.length; i++){
        const _self = array[i];    //获取迭代的数值
        if(!json[_self]){          //假如json在_self这个下标没有数值,就说明这个数据没有
            res.push(_self);       //没有的话就push
            json[_self] = 1;       //同时给这和匹配不到的下标一个值,保证下次进不来
        }                          // 这样写的话 不需要循环遍历 对性能要求更小
    }
    return res;
}

Eine alternative Schreibweise

var array = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]
arrtoObject(arr)
function arrtoObject(arrs) {
  //var obj={};
  var obj = new Object();
  for (var i = 0; i < arrs.length; i++) {
    obj[arrs[i]] = true;
  }
  objectToarr(obj)
}

function objectToarr(obj){
  console.log(obj);
  var arr = [];
  for (const i in obj) {
    arr.push(i)
  }
  console.log(arr);
  return arr
}

ES5-Filterfilterfunktion

var array = [1,1,5,77,32,54,2,4,5,2,2,4,52,2,2,2,2,2]
function unique(array) {
  var res = array.filter(function (item, index, array) {
    return array.indexOf(item) === index;   //因为array.indexOf返回数组的下标 如果这里的下标和index不一样说明已经存在了,就直接退出了
  })
  return res;
}

console.log(unique(array));

ES6-Set Dies ist einfach Filtern und Sortieren zum Filtern

var arr = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]

function FilterArray(arr) {
  set = new Set(arr)
  let arrays = Array.from(set)
  arrays.sort((a, b) => {
    return a - b
  })
  return arrays
}
FilterArray(arr)

Wenn wir nur sortieren müssen

können wir dazu eine Codezeile verwenden Implementierung von

var arr = [1, 1, 5, 77, 32, 54, 2, 4, 5, 2, 2, 4, 52, 2, 2, 2, 2, 2]
var FilterArray = (arr) => [...new Set(arr)]   //
FilterArray(arr)

verwandten Empfohlen:

JS-Array-Deduplizierung

JS verwendet zur Implementierung die Methode indexOf() Array-Deduplizierung

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es, um Duplikate aus JS-Arrays zu entfernen? Zusammenfassung der Methoden zur Deduplizierung von JS-Arrays (Beispiel). 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