Beispiele und Vergleich von 3 Methoden zur Deduplizierung von JS-Objekt-Arrays

Beispiele und Vergleich von 3 Methoden zur Deduplizierung von JS-Objekt-Arrays

1. Vergleich der Daten vor und nach der Deduplizierung

// Die Originaldaten sehen so aus // Die Daten nach der Deduplizierung sehen so aus [{ [{
  "WarenId": "1", "WarenId": "1",
  "Quote": 12, "Quote": 12,
  "skuId": "1"
}, },
{ {
  "WarenId": "2", "WarenId": "2",
  "Quote": 12, "Quote": 12,
  "skuId": "2"
}, }]
{
  "WarenID": "1",
  "Quote": 12,
  "skuId": "1"
}]

2. Wie zu verwenden

  1. Filter und Karte verwenden 🌟🌟🌟🌟🌟
  2. Reduzieren verwenden 🌟🌟🌟🌟
  3. for-Schleife 🌟🌟🌟

Fazit: Der Zeitunterschied zwischen Filter und Reduce ist nicht allzu groß. Filter ist etwas schneller, aber die Filtersyntax ist prägnanter.

1. Filter und Karte verwenden

Der Code ist prägnant und einfach zu verwenden. Er kann in 4 Codezeilen erstellt werden. Der durchschnittliche Zeitaufwand ist am kürzesten. Fünf-Sterne-Empfehlung

Funktion uniqueFunc(arr, uniId){
  const res = neue Map();
  return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
}

2. Verwenden Sie „Reduce“

Etwas mehr Code, der durchschnittliche Zeitaufwand ist vergleichbar mit dem ersten, vier Sterne Empfehlung

Funktion uniqueFunc2(arr, uniId){
  lass hash = {}
  returniere arr.reduce((accum,item) => {
    hash[Element[uniId]] ? '' : hash[Element[uniId]] = true && accum.push(Element)
    Rückgabeakkum
  },[])
}

3. Verwenden einer for-Schleife

Es dauert etwas länger als das erste und zweite, aber die aufgewendete Zeit ist durchschnittlich, empfiehlt Samsung

Funktion uniqueFunc3(arr, uniId){
  let obj = {}
  lass tempArr = []
  für(var i = 0; i<arr.length; i++){
    wenn(!obj[arr[i][uniId]]){
      tempArr.push(arr[i])
      obj[arr[i][uniId]] = true
    }
  }
  RücklauftemperaturAn
}

3. Vergleich der Verarbeitungszeit dreier Methoden für 2400 Daten

Anzahl der Tests Karte filtern reduzieren for-Schleife
1 0,139892578125 ms 0,19189453125 ms 0,2060546875 ms
2 0,12109375 ms 0,1279296875 ms 0,195068359375 ms
3 0,112060546875 ms 0,11767578125 ms 0,174072265625 ms
4 0,10400390625 ms 0,1728515625 ms 0,18701171875 ms
5 0,10986328125 ms 0,12890625 ms 0,175048828125 ms
6 0,113037109375 ms 0,10791015625 ms 0,172119140625 ms
7 0,134033203125 ms 0,129150390625 ms 0,172119140625 ms

Testzeit-Screenshot-Anzeige

Zusammenfassen

Damit ist der Artikel über 3 Methoden und Vergleiche der JS-Objektarray-Deduplizierung abgeschlossen. Weitere relevante Inhalte zur JS-Objektarray-Deduplizierung finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • js-Objekt, um einen Daten-Paging-Effekt zu erzielen
  • Detaillierte Erläuterung der Reihenfolge der JS-Objektdurchquerung
  • Wann sollte man Map anstelle einfacher JS-Objekte verwenden?
  • Kopieren von JS-Objekten (Deep Copy und Shallow Copy)
  • Beispielcode zum Konvertieren von Camel Case in Unterstreichung im Attributnamen eines JS-Objekts
  • Detailliertes Beispiel der Lesegeschwindigkeit von JS-Objekten

<<:  Ausführliche Erläuterung der Auswirkungen von NULL auf Indizes in MySQL

>>:  Eine kurze Einführung in den MySQL-Dialekt

Artikel empfehlen

Einfaches Tutorial zur Verwendung von Navicat für MySQL

empfehlen: Detailliertes Tutorial zur Registrieru...

CentOS 7 - Lösungsprozessdiagramm für vergessene Passwörter

brauchen Unabhängig davon, ob es sich um ein Wind...

Strategie zur Optimierung der Leistung von MySQL-Datenbankabfragen

Optimieren von Abfragen Verwenden der Explain-Anw...

JavaScript realisiert Lupen-Spezialeffekte

Der zu erzielende Effekt: Wenn die Maus auf das k...

Welche Arten von MySQL-Verbindungsabfragen kennen Sie?

Vorwort Wenn die Abfrageinformationen aus mehrere...

Vue-Beispielcode mit dem Animationseffekt „Übergangskomponente“

Die Übergangsdokumentadresse definiert eine Hinte...