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

Vue implementiert einen Login-Verifizierungscode

In diesem Artikelbeispiel wird der spezifische Co...

Detaillierte Erklärung der Vue px-zu-rem-Konfiguration

Inhaltsverzeichnis Methode 1 1. Konfigurations- u...

Node implementiert Suchfeld für Fuzzy-Abfragen

In diesem Artikelbeispiel wird der spezifische Co...

Lösung für das Problem, dass HTML2-Canvas-SVG nicht erkannt wird

Es gibt eine neue Funktion, die das Erfassen eine...

Detaillierte Schritte zum Erstellen eines Vue-Scaffolding-Projekts

Vue-Gerüst -> vue.cli Erstellen Sie schnell ei...

Verstehen Sie die Grundlagen von Navicat für MySQL in einem Artikel

Inhaltsverzeichnis 1. Datenbankbetrieb 2. Datenty...

Der gesamte Prozess der Installation von Gogs mit Pagoda Panel und Docker

Inhaltsverzeichnis 1 Installieren Sie Docker im B...

Lösung für die Upload-Einschränkung von Element-ui-Uploaddateien

Frage Die Angabe des Typs der hochgeladenen Datei...

Ausführliche Erklärung der Iteratoren in ECMAScript

Inhaltsverzeichnis Vorwort Frühere Iterationen It...

Vue-cli erstellt ein Projekt und analysiert die Projektstruktur

Inhaltsverzeichnis 1. Geben Sie ein Verzeichnis e...

Tutorial zur Installation des Nginx-RTMP-Streaming-Servers unter Ubuntu 14

1. RTMP Das RTMP-Streaming-Protokoll ist ein von ...