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!