使用 Common Key 合併 JavaScript 物件
在 JavaScript 中,合併物件可以很簡單。但是,當處理物件數組時,該過程會變得更加複雜,其中多個物件共享一個公共鍵,並且需要組合它們的值。考慮下面的範例:
<code class="js">var array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: ["val2", "val3"] }, { name: "foo2", value: "val4" } ];</code>
目標是將陣列重新組織為一種格式,其中與相同名稱鍵關聯的所有值合併在一起。預期輸出如下所示:
<code class="js">var output = [ { name: "foo1", value: ["val1", "val2", "val3"] }, { name: "foo2", value: ["val4"] } ];</code>
要實現這種合併,一種有效的方法是迭代輸入陣列並過濾具有相同名稱鍵的現有物件。如果找到現有對象,則其值將更新以包含新值。否則,將建立一個新物件並將其新增至輸出數組。
這是一個範例實作:
<code class="js">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); } });</code>
此方法可確保與每個名稱鍵關聯的值正確合併到輸出陣列中的單一物件。透過迭代輸入數組並處理現有的和新的對象,它提供了使用公共鍵合併對象的全面解決方案。
以上是如何將具有公共鍵的 JavaScript 物件合併到一個新數組中,其中值被組合在一起?的詳細內容。更多資訊請關注PHP中文網其他相關文章!