Maison > interface Web > js tutoriel > Comment puis-je fusionner des objets JavaScript dans un tableau ayant la même clé ?

Comment puis-je fusionner des objets JavaScript dans un tableau ayant la même clé ?

Linda Hamilton
Libérer: 2024-10-29 18:54:02
original
174 Les gens l'ont consulté

How can I merge JavaScript objects in an array that have the same key?

Comment fusionner des objets JavaScript dans un tableau avec la même clé

En JavaScript, vous pouvez rencontrer une situation où vous avez un tableau d'objets avec une clé commune, et vous besoin de fusionner leurs valeurs en un seul objet. Cela peut être utile pour organiser et agréger des données.

Par exemple, considérons le tableau d'objets suivant :

<code class="javascript">var array = [
    {
        name: "foo1",
        value: "val1"
    }, {
        name: "foo1",
        value: [
            "val2",
            "val3"
        ]
    }, {
        name: "foo2",
        value: "val4"
    }
];</code>
Copier après la connexion

Dans cet exemple, les objets partagent la clé « nom ». Pour fusionner leurs valeurs en un seul objet, vous pouvez utiliser l'approche suivante :

<code class="javascript">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>
Copier après la connexion

La sortie de ce code serait un tableau de deux objets :

<code class="javascript">[
    {
        name: "foo1",
        value: [
            "val1",
            "val2",
            "val3"
        ]
    }, {
        name: "foo2",
        value: [
            "val4"
        ]
    }
]</code>
Copier après la connexion

Dans ce résultat , les valeurs de la clé "foo1" ont été fusionnées en un seul tableau et la clé "foo2" reste intacte. Cette approche vous permet de fusionner efficacement des objets dans un tableau qui partagent une clé commune, en consolidant leurs valeurs dans une représentation plus organisée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal