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
DDDOriginal
2024-10-29 02:25:29757Durchsuche

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>

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"]
  }
]

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!

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