在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"] } ]此解決方案迭代輸入數組,搜尋具有相同“名稱”鍵的現有對象,並附加“值”當前對像到現有對象的“值”。如果不存在現有對象,它將目前對像新增至輸出數組。 此操作的結果是一個物件數組,其中具有相同「name」鍵的物件將其「value」鍵合併到一個數組。
以上是如何合併 JavaScript 陣列中具有相同「名稱」鍵的對象,並將它們的「值」鍵合併到一個陣列中?的詳細內容。更多資訊請關注PHP中文網其他相關文章!