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

JavaScript中如何为数组值添加指定键后与另一键值对数组合并

实现方案

首先说明你给出的示例存在语法小问题:JS中键值对对象用{}包裹,数组用[]包裹,按照你给出的预期输出逻辑,默认第一个输入为公共属性对象,第二个为纯值数组,实现代码如下:

核心实现代码

// 输入1:公共属性对象
const commonSubtaskInfo = {
  subtask_assigned_to: "rohit",
  status: 0,
  subtask_description: "described something"
};
// 输入2:纯值数组
const subtaskNameList = ["value 1", "value 2"];

// 合并生成结果
const result = subtaskNameList.map(subtaskName => {
  // 为每个值添加subtask_name键,再和公共属性合并
  return {
    subtask_name: subtaskName,
    ...commonSubtaskInfo
  };
});

console.log(result);

输出结果

运行后result的结构和你预期完全一致:

[
  {
    subtask_name: "value 1",
    subtask_assigned_to: "rohit",
    status: 0,
    subtask_description: "described something"
  },
  {
    subtask_name: "value 2",
    subtask_assigned_to: "rohit",
    status: 0,
    subtask_description: "described something"
  }
]

扩展场景:第一个输入为多对象数组

如果你所说的第一个输入确实是包含多个属性对象的数组,要实现两组元素的全组合合并,可以用以下写法:

const arr1 = [
  {subtask_assigned_to: "rohit", status: 0, subtask_description: "desc1"},
  {subtask_assigned_to: "jack", status: 1, subtask_description: "desc2"}
];
const arr2 = ["value1", "value2"];

const fullResult = arr1.flatMap(commonItem => 
  arr2.map(name => ({subtask_name: name, ...commonItem}))
);

语法说明

  • 用Array.prototype.map()遍历数组生成新结构,不会修改原数组
  • ES6展开运算符...用来合并对象属性,如果需要兼容低版本JS环境,可以替换为Object.assign写法:
    return Object.assign({subtask_name: subtaskName}, commonSubtaskInfo);
    

内容的提问来源于stack exchange,提问作者Rohit Gowda

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 10:06:05