Heim > Web-Frontend > js-Tutorial > Wie können Sie Objekte in einem JavaScript-Array mit demselben „Name'-Schlüssel zusammenführen und ihre „Wert'-Schlüssel in einem Array kombinieren?

Wie können Sie Objekte in einem JavaScript-Array mit demselben „Name'-Schlüssel zusammenführen und ihre „Wert'-Schlüssel in einem Array kombinieren?

DDD
Freigeben: 2024-10-29 02:25:29
Original
774 Leute haben es durchsucht

How can you merge objects in a JavaScript array with the same

Objekte in Arrays mit gemeinsamem Schlüssel in JavaScript zusammenführen

Problemstellung

Betrachten Sie ein Array mit Objekten, wobei jedes Objekt einen „Name“-Schlüssel hat. Objekte mit demselben „Namen“ haben gemeinsame Werte. Die Aufgabe besteht darin, das Array neu zu organisieren, indem die „Wert“-Schlüssel aller Objekte mit demselben „Namen“ zusammengeführt werden.

Lösung

Um Objekte in einem Array zusammenzuführen Wenn Sie denselben „Name“-Schlüssel verwenden, können Sie den folgenden Ansatz verwenden:

<code class="javascript">var array = [{
  name: "foo1",
  value: "val1"
}, {
  name: "foo1",
  value: ["val2", "val3"]
}, {
  name: "foo2",
  value: "val4"
}];

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);
  }
});

console.dir(output);</code>
Nach dem Login kopieren

Diese Lösung durchläuft das Eingabearray, sucht nach vorhandenen Objekten mit demselben „Name“-Schlüssel und hängt den „Wert“ von an das aktuelle Objekt auf den „Wert“ des vorhandenen Objekts. Wenn kein Objekt vorhanden ist, wird das aktuelle Objekt zum Ausgabearray hinzugefügt.

Das Ergebnis dieser Operation ist ein Array von Objekten, in dem die Schlüssel „Wert“ von Objekten mit demselben „Name“-Schlüssel zusammengeführt werden ein Array.

[
  {
    name: "foo1",
    value: ["val1", "val2", "val3"]
  },
  {
    name: "foo2",
    value: ["val4"]
  }
]
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie können Sie Objekte in einem JavaScript-Array mit demselben „Name'-Schlüssel zusammenführen und ihre „Wert'-Schlüssel in einem Array kombinieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage