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

JavaScript如何从嵌套JSON对象中提取指定字段拼接生成目标数组

问题排查

你的代码存在两处核心问题:

  • 拼接顺序不符合要求:现有代码拼接顺序为name:sup对象:externalId,要求的格式为externalId:id:name
  • 取值错误:item.product.sup[0]是对象类型,你需要显式取它的id属性;你给出的JSON示例中name字段带有多余的**标记和空格,需要做清洗才能匹配预期输出

修复后的实现

基于forEach的修改版

const jsonResultKeys = ['AAA', 'BBB', 'CCC']
const items = [];

jsonResultKeys.forEach(k => {
  const item = Jsonresult.items[k];
  const supFirstItem = item.product.sup[0];
  // 若实际JSON中name没有**和空格,可直接用item.product.name
  const cleanName = item.product.name.replace(/\*\*/g, '').replaceAll(' ', '');
  items.push({
    description: `${supFirstItem.prod.externalId}:${supFirstItem.id}:${cleanName}`
  })
});

基于map的简洁实现(符合你想要的map写法需求)

const jsonResultKeys = ['AAA', 'BBB', 'CCC']
const items = jsonResultKeys.map(k => {
  const { product } = Jsonresult.items[k];
  const supFirstItem = product.sup[0];
  const cleanName = product.name.replace(/\*\*/g, '').replaceAll(' ', '');
  return {
    description: `${supFirstItem.prod.externalId}:${supFirstItem.id}:${cleanName}`
  }
})

以上两种实现运行后都能得到你给出的预期输出结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 12:15:04