使用共享键合并数组中的 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中文网其他相关文章!