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

如何在JS/TS中将对象数组嵌套子对象的属性迁移至外层

JavaScript/TypeScript 数组结构转换方案

方案1:不可变转换(推荐,不修改原数组)

直接使用Array.prototype.map结合对象扩展运算符,返回新数组,不会改动原数据,适用于绝大多数场景:

// 最简写法(对象解构+隐式返回)
const desiredArray = currentArray.map(({ year, asset }) => ({ year, ...asset }));

如果是TypeScript环境,可以配合类型定义保证类型安全:

interface OriginalItem {
  year: number;
  asset: {
    silver: number;
    gold: number;
  }
}

interface DesiredItem {
  year: number;
  silver: number;
  gold: number;
}

const desiredArray: DesiredItem[] = currentArray.map(({ year, asset }: OriginalItem) => ({
  year,
  ...asset
}));

方案2:可变转换(直接修改原数组)

如果不需要保留原数组,可以用forEach遍历修改,节省内存开销:

currentArray.forEach(item => {
  // 将asset下的所有属性合并到外层对象
  Object.assign(item, item.asset);
  // 删除原asset属性
  delete item.asset;
});

执行后原currentArray就会变成你需要的目标结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 19:09:05