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
Freigeben: 2024-12-15 12:08:14
Original
465 Leute haben es durchsucht

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"}
]
Nach dem Login kopieren

Die gewünschte Ausgabe ist ein Array wie dieses:

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

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));
Nach dem Login kopieren

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!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage