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

如何从API获取的对象数组中提取correct_answer属性并生成目标数组(含错误代码修正方案)

如何从API返回的数组中提取正确答案组成新数组?

首先咱们先拆解下你原代码里的问题:

  1. 循环条件写了i < 4,但你的apipresave数组只有3个元素,这会导致最后一次循环访问apipresave[3]时触发undefined错误;
  2. 你把return correct_answer_array放在了循环内部,这意味着第一次循环执行完就直接返回数组了,后面的元素根本没机会被处理,所以只能得到第一个正确答案。

下面给你几种靠谱的实现方式,按需选择:

方法1:修复你的for循环

调整循环条件并把return移到循环外面,确保所有元素都被遍历:

function correct_answer_array_func (){ 
  const correct_answer_array = [];
  // 用数组长度作为循环上限,避免硬编码数字
  for(let i = 0 ; i < apipresave.length; i++){ 
    correct_answer_array.push(apipresave[i].correct_answer);
  }
  // 循环完成后再返回数组
  return correct_answer_array;
}

方法2:使用map方法(推荐)

map是JavaScript数组专门用于转换数组元素的方法,写法简洁且可读性拉满:

// 一行代码搞定,不需要额外函数(如果不需要封装的话)
const correct_answer_array = apipresave.map(item => item.correct_answer);

// 如果需要封装成函数:
function correct_answer_array_func (){ 
  return apipresave.map(item => item.correct_answer);
}

map会自动遍历原数组的每个元素,把每个元素的correct_answer属性值收集起来,直接返回符合要求的新数组,完美匹配你的需求。

方法3:使用forEach遍历

和for循环逻辑类似,但写法更清爽:

const correct_answer_array = [];
apipresave.forEach(item => {
  correct_answer_array.push(item.correct_answer);
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 12:04:04