如何合并含动态可变字段的JavaScript对象列表?
解决方案
要实现这种按位置对应合并动态字段对象的需求,可以通过拆分数组+对应索引合并的方式完成,具体代码如下:
步骤说明
- 计算输入数组长度的一半,确定需要合并的对象对数量;
- 将输入数组拆分为前后两个等长的子数组;
- 遍历前半部分数组,将每个对象与后半部分对应索引的对象合并。
代码实现
// 示例输入数组 const input = [ { A: 'a1', B: "b1" }, { A: 'a2', B: "b2" }, { C: 'c1', D: "d1" }, { C: 'c2', D: "d2" } ]; // 计算拆分点 const halfLen = input.length / 2; // 拆分为前后两个子数组 const firstGroup = input.slice(0, halfLen); const secondGroup = input.slice(halfLen); // 对应索引合并对象 const output = firstGroup.map((obj, idx) => ({ ...obj, ...secondGroup[idx] })); console.log(output); // 输出结果: // [ { A: 'a1', B: 'b1', C: 'c1', D: 'd1' }, { A: 'a2', B: 'b2', C: 'c2', D: 'd2' } ]
关键细节
- 使用扩展运算符(
...)合并对象,会自动处理所有动态字段,无需提前知道键名; - 该方案默认输入数组长度为偶数,且前后两部分需要合并的对象数量一致,符合你的示例场景。
内容的提问来源于stack exchange,提问作者Ravs
相关产品推荐
相关产品推荐

