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

如何将指定格式的对象转换为特定结构的数组?

解决方法

首先你提供的原始对象存在语法错误,incorrect部分的写法不符合JavaScript规范,需要先修正为合法结构。下面分两种常见情况给出转换代码:

情况1:incorrect是数组格式

如果原始数据的incorrect是数组(更匹配索引式写法),可以这样转换:

// 修正后的原始数据
const originalData = {
  correct: "Warren Harding",
  incorrect: ["Theodore Roosevelt", "Andrew Jackson "]
};

// 执行转换
const answerOptions = [
  // 生成正确选项的对象
  { answerText: originalData.correct, isCorrect: true },
  // 遍历错误选项,生成对应对象并去除多余空格
  ...originalData.incorrect.map(item => ({
    answerText: item.trim(),
    isCorrect: false
  }))
];

情况2:incorrect是键值对对象格式

如果原始数据的incorrect是带索引的对象,用Object.values()提取值后再转换:

// 修正后的原始数据
const originalData = {
  correct: "Warren Harding",
  incorrect: {
    0: "Theodore Roosevelt",
    1: "Andrew Jackson "
  }
};

// 执行转换
const answerOptions = [
  { answerText: originalData.correct, isCorrect: true },
  ...Object.values(originalData.incorrect).map(item => ({
    answerText: item.trim(),
    isCorrect: false
  }))
];

转换说明

  • 先创建正确选项的对象,标记isCorrect: true
  • 用map方法遍历错误选项,将每个元素转换成指定格式的对象,同时用trim()处理了"Andrew Jackson "末尾的多余空格
  • 扩展运算符...用于将遍历生成的错误选项数组合并到最终数组中

执行后answerOptions的结构完全符合需求:

[
  { answerText: "Warren Harding", isCorrect: true },
  { answerText: "Theodore Roosevelt", isCorrect: false },
  { answerText: "Andrew Jackson", isCorrect: false }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 10:25:21