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>
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>
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>
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!