在JavaScript 中,您可能會遇到這樣的情況:您有一個具有公共鍵的物件數組,並且您需要將它們的值合併到一個物件中。這對於組織和聚合資料非常有用。
例如,考慮以下物件陣列:
<code class="javascript">var array = [ { name: "foo1", value: "val1" }, { name: "foo1", value: [ "val2", "val3" ] }, { name: "foo2", value: "val4" } ];</code>
在此範例中,物件共享鍵「name」。要將它們的值合併到單一物件中,您可以使用以下方法:
<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>
此程式碼的輸出將是兩個物件的陣列:
<code class="javascript">[ { name: "foo1", value: [ "val1", "val2", "val3" ] }, { name: "foo2", value: [ "val4" ] } ]</code>
在此結果中,「foo1」鍵的值已合併到單一陣列中,「foo2」鍵保持不變。這種方法允許您有效地合併數組中共享公共鍵的對象,將它們的值合併為更有組織的表示形式。
以上是如何合併具有相同鍵的陣列中的 JavaScript 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!