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

Javascript如何将外层对象的status键值对添加到嵌套menues数组子项中

实现方案

核心思路:

  • 遍历原始数组的每个订单外层对象
  • 取出当前订单的status值,注入到该订单关联的menues数组的每一个子对象中
  • 可按需选择是否删除外层的status属性

方案1:原地修改原数据(性能更高,适合不需要保留原始数据的场景)

直接修改原始响应数据,无额外内存开销:

// 你的原始JSON响应数据
const rawData = [
  {
    "id": 1,
    "status": "pending",
    "menues": [
      {
        "title": "Coke",
        "price": "200"
      }
    ]
  },
  {
    "id": 2,
    "status": "delivered",
    "menues": [
      {
        "title": "Pepsi",
        "price": "120"
      }
    ]
  }
];

rawData.forEach(order => {
  const currentStatus = order.status;
  // 给当前订单的所有菜单项添加status属性
  order.menues.forEach(menu => {
    menu.status = currentStatus;
  });
  // 删除外层的status属性,不需要可注释这行
  delete order.status;
});

// rawData即为处理完成的目标数据
console.log(rawData);

方案2:返回全新数组(不修改原数据,适合状态不可变场景)

所有对象全新生成,原始数据完全不受影响,适配React/Vue等框架的状态更新规则:

const rawData = [/* 同上原始数据 */];

const processedData = rawData.map(order => {
  // 解构分离外层status和其他属性
  const { status, ...restOrderInfo } = order;
  // 生成新的menues数组,每个项追加status
  const newMenues = order.menues.map(menu => ({
    ...menu,
    status
  }));
  // 返回全新的订单对象
  return {
    ...restOrderInfo,
    menues: newMenues
  };
});

// processedData即为处理完成的目标数据
console.log(processedData);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 16:15:03