在 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中文网其他相关文章!