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

So migrieren Sie den MySQL-Speicherort auf eine neue Festplatte

1. Bereiten Sie eine neue Festplatte vor und form...

Lösen Sie das Problem ungültiger UTF8-Einstellungen in MySQL 5.6

Nach der Dekomprimierung der grünen Version von m...

WeChat-Applet implementiert Taschenrechnerfunktion

WeChat-Miniprogramme erfreuen sich immer größerer...

CSS3 realisiert eine springende Ballanimation

Normalerweise besuche ich gerne die Sonderseiten ...

Was ist BFC? So löschen Sie Floats mithilfe von CSS-Pseudoelementen

BFC-Konzept: Der Blockformatierungskontext ist ei...

Verwendung von MySQL-Triggern

Inhaltsverzeichnis 1. Trigger-Einführung 1. Was i...

Textarea-Tag in HTML

<textarea></textarea> wird verwendet,...

Grafisches Tutorial zur Installation und Konfiguration von MySQL (CentOS7)

1. Systemumgebung [root@localhost-Startseite]# ca...

Detaillierte Erklärung der neuen Erfahrung von Vite

Was ist Vite? (Es ist ein neues Spielzeug im Fron...

Implementierung der TCPWrappers-Zugriffskontrolle in Centos

1. Übersicht über TCP-Wrapper TCP Wrapper „verpac...

So beheben Sie den Startfehler des Docker-Containers

Frage: Nach dem Neustart des Computers kann der M...

Beispielcode zur Installation von Jenkins mit Docker

Zwei Probleme, die bei der Installation von Docke...

Wird der veraltete Docker durch Podman ersetzt?

Das Kubernetes-Team hat vor Kurzem angekündigt, d...