在JavaScript 中使用共享鍵合併數組中的物件
問題陳述
問題陳述考慮一個數組對於對象,其中每個對像都有一個“name”鍵。具有相同“名稱”的物件共享值。任務是透過合併所有具有相同「名稱」的物件的「值」鍵來重新組織陣列。
解決方案<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>
[ { name: "foo1", value: ["val1", "val2", "val3"] }, { name: "foo2", value: ["val4"] } ]
以上是如何合併 JavaScript 陣列中具有相同「名稱」鍵的對象,並將它們的「值」鍵合併到一個陣列中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!