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

JavaScript中重构含嵌套数组的对象数组是否可行?

为嵌套products对象添加外层name属性的实现方案

当然可行!这在JavaScript里是很常见的对象数组转换需求,咱们用数组的map()方法就能轻松搞定。

具体实现代码

// 你的原始对象数组
const originalData = [
  {name: 'Alex', products: [{type: 1, code: 1213}, {type: 2, code: 2312}]},
  {name: 'Alex', products: [{type: 1, code: 1213}, {type: 2, code: 2312}]}
];

// 执行转换逻辑
const transformedData = originalData.map(user => {
  return {
    ...user, // 保留外层对象的所有原有属性
    products: user.products.map(product => {
      // 把外层的name属性合并到每个product对象里
      return { name: user.name, ...product };
    })
  };
});

// 验证结果
console.log(transformedData);

代码逻辑说明

  • 外层map():遍历原始数组里的每一个用户对象,对每个对象做转换处理。
  • ...user:用扩展运算符保留外层对象的所有原有属性(这里就是name和products,不过我们会重新生成products数组)。
  • 内层map():针对当前用户的products数组,逐个处理每个产品对象,将外层的name属性和产品自身的属性合并,生成新的产品对象。
  • 最终得到的transformedData就是你想要的结构,每个嵌套的产品对象都包含了外层的name属性。

如果喜欢更简洁的写法,还可以用箭头函数的简写形式:

const transformedData = originalData.map(user => ({
  ...user,
  products: user.products.map(product => ({ name: user.name, ...product }))
}));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:33:25