JavaScript-Objekte in einem Array mit gemeinsamen Schlüsseln zusammenführen
In JavaScript ist es oft notwendig, Objekte mit ähnlichen Schlüsseln in einem einzigen Objekt zu kombinieren . Betrachten Sie das gegebene Beispiel:
<code class="js">const array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ];</code>
Das Ziel besteht darin, dieses Array in ein „Ausgabe“-Array umzustrukturieren, in dem alle Wertschlüssel in Objekten mit gemeinsamen Namen zusammengeführt werden. Die erwartete Ausgabe würde wie folgt aussehen:
<code class="js">const output = [ { name: "foo1", value: ["val1", "val2", "val3"] }, { name: "foo2", value: ["val4"] } ];</code>
Zusammenführen der Objekte
Eine Lösung für dieses Problem besteht darin, die folgenden Schritte zu verwenden:
Beispielcode
Der folgende Code implementiert den beschriebenen Ansatz:
<code class="js">const array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ]; let output = []; array.forEach(item => { const existing = output.filter(v => v.name == item.name); if (existing.length) { const 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); } }); console.log(output);</code>
Dieser Code erzeugt das gewünschte Ausgabearray, in dem die Werte aller Objekte mit demselben Namen zusammengeführt werden.
Das obige ist der detaillierte Inhalt vonWie füge ich JavaScript-Objekte in einem Array mit gemeinsamen Schlüsseln zusammen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!