Heim >Web-Frontend >js-Tutorial >Wie kann ich ein Array von Objekten nach einer bestimmten Eigenschaft gruppieren und andere Eigenschaften in Arrays zusammenfassen?

Wie kann ich ein Array von Objekten nach einer bestimmten Eigenschaft gruppieren und andere Eigenschaften in Arrays zusammenfassen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-12-15 12:08:14467Durchsuche

How can I group an array of objects by a specific property and consolidate other properties into arrays?

Array-Elemente nach Objekteigenschaft gruppieren

Bei einem Array von Objekten mit Gruppen- und Farbeigenschaften besteht das Ziel darin, die Elemente nach ihren Gruppenwerten zu gruppieren und so die Farbe zu konsolidieren Werte für jede Gruppe.

Problem

Das bereitgestellte Array sieht so aus Dies:

myArray = [
  {group: "one", color: "red"},
  {group: "two", color: "blue"},
  {group: "one", color: "green"},
  {group: "one", color: "black"}
]

Die gewünschte Ausgabe ist ein Array wie dieses:

myArray = [
  {group: "one", color: ["red", "green", "black"]},
  {group: "two", color: ["blue"]}
]

Lösung

  1. Erstellen Sie eine Zuordnung von Gruppennamen zu Werten : Verwenden Sie die Methode Reduce(), um eine Zuordnung von Gruppennamen zu Arrays von zu erstellen Farben.
  2. In das gewünschte Format umwandeln: Erstellen Sie ein neues Array, indem Sie die Schlüssel der Karte durchlaufen und für jede Gruppe ein Objekt erstellen, dessen Gruppeneigenschaft auf den Schlüssel und dessen Farbeigenschaft festgelegt ist auf die Farbpalette, die diesem Schlüssel zugeordnet ist.

Unten ist eine JavaScript-Implementierung:

var myArray = [
    {group: "one", color: "red"},
    {group: "two", color: "blue"},
    {group: "one", color: "green"},
    {group: "one", color: "black"}
];

var group_to_values = myArray.reduce(function (obj, item) {
    obj[item.group] = obj[item.group] || [];
    obj[item.group].push(item.color);
    return obj;
}, {});

var groups = Object.keys(group_to_values).map(function (key) {
    return {group: key, color: group_to_values[key]};
});

console.log("groups:");
console.log(JSON.stringify(groups, null, 4));

Dieser Code Erstellt die gewünschte Ausgabe, wobei die Elemente nach ihrer Gruppeneigenschaft gruppiert und ihre Farbwerte in Arrays zusammengefasst werden.

Das obige ist der detaillierte Inhalt vonWie kann ich ein Array von Objekten nach einer bestimmten Eigenschaft gruppieren und andere Eigenschaften in Arrays zusammenfassen?. 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