Heim  >  Artikel  >  Backend-Entwicklung  >  Besuchen Sie Reduce() in js noch einmal, um Objekte in Arrays anzugeben

Besuchen Sie Reduce() in js noch einmal, um Objekte in Arrays anzugeben

一个新手
一个新手Original
2018-05-19 17:05:042401Durchsuche

Angenommen, es gibt ein solches Array:

let person = [
     {id: 0, name: "小明"},
     {id: 1, name: "小张"},
     {id: 2, name: "小李"},
     {id: 3, name: "小孙"},
     {id: 1, name: "小周"},
     {id: 2, name: "小陈"},   
]

Wir möchten Objekte mit doppelten IDs im Array entfernen, z. B. zwei Objekte mit derselben ID 2 -

{id: 2, name: "小李"}和{id: 2, name: "小陈"} (去掉任何一个都可以)

Wir sollten Wie geht das?

Tatsächlich sind herkömmliche Deduplizierungsmethoden für Array-Objekte machtlos, und iterative Methoden wie forEach() und filter() sind nicht einfach zu verwenden. Was wirklich eine elegante Deduplizierung erreichen kann, ist die neue Ergänzung von ES5 A Methode - reduce()

reduce()-Methode empfängt eine Rückruffunktion als ersten Parameter, und die Rückruffunktion akzeptiert vier Parameter, nämlich:

1. cur => Der erste Wert oder das Ergebnis der Überlagerung mit nachfolgenden Werten; 2. next => Der nächste zu stapelnde Wert;

3. Indexwert; 4. arr => Ein Element und zurückgeben

Es ist ersichtlich, dass das Endergebnis; 1+2+3+4+5+6 = 21; Außerdem kann Reduce auch einen zweiten Parameter erhalten, der zur Deklaration des Typs und des Anfangswerts von cur der Callback-Funktion verwendet wird (erster Parameter). );

reduce() ist ungefähr so. Mit dieser Methode können wir die Deduplizierung von Objekten im Array sehr elegant erreichen. Kehren wir zum Array am Anfang des Artikels zurück: Nach dem Drucken können wir das deduplizierte Array erhalten.

Das obige ist der detaillierte Inhalt vonBesuchen Sie Reduce() in js noch einmal, um Objekte in Arrays anzugeben. 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