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

如何将数组中同label对象的options值合并为目标格式字符串?

实现按Label合并Options并生成指定格式字符串

需求:将数组中相同label对应的options值合并,生成如下格式的字符串:

my Label 1
AA
BB
CC

Other Label
XX
ZZ

现有数据:

let data = [
{
    label: "my Label 1",
    id: 1,
    options: [
      {
        id: 1,
        value: "AA"
      },
      {
        id: 2,
        value: "BB"
      },
      {
        id: 3,
        value: "CC"
      }
      ]
  },
  {
    label: "Other Label",
    id: 2,
    options: [
      {
        id: 3,
        value: "XX"
      },
      {
        id: 4,
        value: "ZZ"
      }
      ]
  }
]

你当前的代码会把每个option和对应label拆成对象再扁平化,但这不是目标格式。可以通过以下方式直接生成目标字符串:

方法一:遍历拼接字符串

// 初始化结果数组,存储每个label块的内容
let result = [];

data.forEach(section => {
  // 添加当前label
  result.push(section.label);
  // 添加该label下所有options的value
  section.options.forEach(option => {
    result.push(option.value);
  });
  // 每个label块之间加空行(最后一个块后不加)
  if (data.indexOf(section) !== data.length - 1) {
    result.push('');
  }
});

// 将数组转为换行分隔的字符串
let output = result.join('\n');
console.log(output);

方法二:使用map和join简化代码

let output = data.map(section => {
  // 把label和对应values用换行拼接成单个块
  return `${section.label}\n${section.options.map(opt => opt.value).join('\n')}`;
// 所有块之间用空行(两个换行)分隔
}).join('\n\n');

console.log(output);

两种方法都会输出符合要求的格式:

my Label 1
AA
BB
CC

Other Label
XX
ZZ

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 02:45:20