Heim > Artikel > Web-Frontend > Wie kann ich JavaScript-Objekte mit gemeinsamen Schlüsseln in einem neuen Array zusammenführen, in dem Werte kombiniert werden?
JavaScript-Objekte mit gemeinsamem Schlüssel zusammenführen
In JavaScript kann das Zusammenführen von Objekten unkompliziert sein. Allerdings wird der Prozess komplexer, wenn es sich um ein Array von Objekten handelt, bei denen mehrere Objekte einen gemeinsamen Schlüssel haben und ihre Werte kombiniert werden müssen. Betrachten Sie das folgende Beispiel:
<code class="js">var array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ];</code>
Das Ziel besteht darin, das Array in ein Format zu reorganisieren, in dem alle mit demselben Namensschlüssel verknüpften Werte zusammengeführt werden. Die erwartete Ausgabe würde so aussehen:
<code class="js">var output = [ { name: "foo1", value: ["val1", "val2", "val3"] }, { name: "foo2", value: ["val4"] } ];</code>
Um diese Zusammenführung zu erreichen, besteht ein effektiver Ansatz darin, das Eingabearray zu durchlaufen und nach vorhandenen Objekten mit demselben Schlüsselnamen zu filtern. Wenn ein vorhandenes Objekt gefunden wird, wird sein Wert aktualisiert, um den neuen Wert einzuschließen. Andernfalls wird ein neues Objekt erstellt und dem Ausgabearray hinzugefügt.
Hier ist eine Beispielimplementierung:
<code class="js">var output = []; array.forEach(function(item) { var existing = output.filter(function(v, i) { return v.name == item.name; }); if (existing.length) { var existingIndex = output.indexOf(existing[0]); output[existingIndex].value = output[existingIndex].value.concat(item.value); } else { if (typeof item.value == 'string') item.value = [item.value]; output.push(item); } });</code>
Dieser Ansatz stellt sicher, dass die mit jedem Namensschlüssel verknüpften Werte korrekt zu einem zusammengeführt werden einzelnes Objekt innerhalb des Ausgabearrays. Durch die Iteration durch das Eingabearray und die Verarbeitung vorhandener und neuer Objekte bietet es eine umfassende Lösung zum Zusammenführen von Objekten mit gemeinsamen Schlüsseln.
Das obige ist der detaillierte Inhalt vonWie kann ich JavaScript-Objekte mit gemeinsamen Schlüsseln in einem neuen Array zusammenführen, in dem Werte kombiniert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!