You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在JavaScript中将常量对象数组合并到API返回对象数组的每个对象中?

解决方案:将常量对象合并到API返回数组的每个元素中

你的需求是把temp数组内的对象属性,合并到response_from_api的每一个对象里,这里给出两种实用实现方式:

方法一:生成新数组(推荐,不修改原数据)

用Array.map()遍历API返回数组,结合对象扩展运算符...合并属性,生成全新数组,不会改动原数组,更符合JavaScript的最佳实践:

// 改用const声明常量,避免var的变量提升问题
const temp = [{
  'key1': 'valu1',
  'key2': 'val2'
}];

const response_from_api = [
  {
    "created_date": "2022-07-28",
    "tank_type": "2"
  },
  {
    "created_date": "2022-07-28",
    "tank_type": "1"
  }
];

// 取出temp数组里的目标对象
const tempObj = temp[0];
// 遍历合并每个对象,生成新数组
const mergedArray = response_from_api.map(item => ({
  ...item, // 保留原对象的所有属性
  ...tempObj // 合并temp对象的属性,若有同名属性会覆盖原对象的属性
}));

console.log(mergedArray);

运行后mergedArray的每个元素都会同时包含原有的created_date、tank_type,以及新增的key1、key2属性。

方法二:直接修改原数组(仅在必须时使用)

如果需要直接修改response_from_api里的原对象,可以用forEach配合Object.assign()实现:

const tempObj = temp[0];
response_from_api.forEach(item => {
  // 把tempObj的属性直接复制到原对象中
  Object.assign(item, tempObj);
});

// 此时response_from_api的元素已被修改
console.log(response_from_api);

额外补充

  • 若你的运行环境不支持ES6扩展运算符,可改用Object.assign()替代合并逻辑:
    const mergedArray = response_from_api.map(item => Object.assign({}, item, tempObj));
    
  • 如果temp数组内有多个对象需要合并,可先把temp里的所有对象合并为一个,再和数组元素合并:
    // 合并temp数组内的所有对象为单个对象
    const combinedTemp = Object.assign({}, ...temp);
    const mergedArray = response_from_api.map(item => ({...item, ...combinedTemp}));
    

内容的提问来源于stack exchange,提问作者sai sa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 10:15:39