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

JS循环处理JSON嵌套对象数组,拼接itemName生成allItems字段

问题分析

  • 原代码第一处错误:循环赋值时直接将items数组整体赋值给了allItems字段,没有提取数组元素的itemName属性,也没有拼接为字符串。
  • 原代码第二处错误:后续的map+join操作直接将存储对象的copyItems变量重写为了字符串,丢失了原有的对象结构。

正确实现方案

核心逻辑是对每个外层对象的items数组先提取所有itemName属性,再用, 拼接为字符串。由于空数组调用join方法会直接返回空字符串,无需额外判断items是否为空,逻辑可自动兼容空数组场景。

方案1:用Array.map实现(更简洁,不修改原数组)

const processedItems = items.map(item => {
  const allItems = item.items.map(subItem => subItem.itemName).join(', ');
  // 解构原对象,新增allItems字段,返回新对象,不会修改原items数组
  return {
    ...item,
    allItems
  }
});

console.log(processedItems);

方案2:基于原for循环逻辑修改(会修改原数组)

var copyItems = [];
for (let i = 0; i < items.length; i++) {
  const allItemsStr = items[i].items.map(sub => sub.itemName).join(', ');
  items[i].allItems = allItemsStr;
  copyItems.push(items[i]);
}

console.log(copyItems);

两种方案的输出结果都和你提供的预期结构完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 05:06:03