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

如何将两个不同长度的动态数组合并为指定结构的对象数组?

合并动态数组生成指定结构的数组

需求说明

需要合并两个长度动态变化的数组,生成符合以下要求的finalArray:

  • 将array1中的每个元素作为键,空数组作为对应值,添加到array2的每个对象中
  • 将array2对象原有的name字段替换为users字段,保留原字段值

实现代码

const array1 = [7665, 7666];
const array2 = [
  { "id": 1, "name": "user-1" },
  { "id": 2, "name": "user-2" },
  { "id": 3, "name": "user-3" }
];

// 把array1转换为可复用的键值对结构
const extraFields = array1.reduce((obj, key) => {
  obj[key] = [];
  return obj;
}, {});

// 遍历array2生成目标数组
const finalArray = array2.map(item => ({
  ...extraFields,
  users: item.name
}));

console.log(finalArray);

代码说明

  1. 生成统一扩展字段:用reduce遍历array1,将每个元素转为对象的键,对应值设为空数组,得到可复用的扩展对象extraFields,适配array1长度动态变化的场景
  2. 构建目标数组:用map遍历array2的每个对象,通过对象展开运算符把extraFields的键值对加入新对象,同时添加users字段并赋值为原对象的name值,直接替换原name字段

如果需要保留array2原对象的其他字段(比如id),可修改map回调:

const finalArray = array2.map(item => ({
  ...item,
  ...extraFields,
  users: item.name,
  name: undefined // 显式删除原name字段
}));

内容的提问来源于stack exchange,提问作者Elham Bagheri

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 04:07:43