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

Beispielanalyse der von MySQL 5.7 generierten Spaltennutzung

Dieser Artikel veranschaulicht anhand von Beispie...

So implementieren Sie Lastenausgleich in MySQL

Vorwort MySQL ist ein schnelles, leistungsstarkes...

So gehen Sie nach der MySQL-Tabellenpartitionierung problemlos online

Inhaltsverzeichnis Zweck der Tabelle Zum Beispiel...

Select unterstützt kein Doppelklick-DBClick-Ereignis

XML/HTML-CodeInhalt in die Zwischenablage kopiere...

Wissen Sie, warum Vue-Daten eine Funktion sind?

Erklärung auf der offiziellen Website: Wenn eine ...

Installations-Tutorial für virtuelle VMware-Maschinen unter Ubuntu 18.04

Installationsschritte 1. Erstellen Sie eine virtu...

So erkennen Sie mit Apache Tika, ob eine Datei beschädigt ist

Apache Tika ist eine Bibliothek zur Dateityperken...

Praktische Methode zum Löschen verknüpfter Tabellen in MySQL

In der MySQL-Datenbank können Tabellen, nachdem s...

Implementierungsbeispiel für den Bildupload mit Vue+Element+Springboot

Vor kurzem hatte ich zufällig Kontakt mit dem Pro...