使用共享鍵合併陣列中的 JavaScript 物件
在 JavaScript 中,通常需要將具有相似鍵的物件組合成單一物件。考慮給出的範例:
<code class="js">const array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ];</code>
目標是將此數組重新組織為「輸出」數組,其中所有值鍵都合併到具有共享名稱的物件中。預期輸出如下:
<code class="js">const output = [ { name: "foo1", value: ["val1", "val2", "val3"] }, { name: "foo2", value: ["val4"] } ];</code>
合併物件
解決此問題的一種方法是使用以下步驟:
範例程式碼
以下程式碼實作了所描述的方法:
<code class="js">const array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ]; let output = []; array.forEach(item => { const existing = output.filter(v => v.name == item.name); if (existing.length) { const 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.log(output);</code>
此程式碼將產生所需的輸出陣列,其中所有同名物件的值都會合併。
以上是如何使用共享鍵合併數組中的 JavaScript 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!