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

React.js中如何定位对象中的true值

如何定位对象中值为true的项

嘿,我来帮你搞定这个问题!你的questions是个包含问题的数组,每个问题里的answerOptions又是选项数组,要找到isCorrect: true的项,这里有几种实用的方法:

方法1:针对单个问题找唯一正确选项(最常用)

如果每个问题只有一个正确答案,用find()方法最直接——它会返回第一个符合条件的元素:

const questions = [ 
  { 
    questionText: 'this is question 1', 
    answerOptions: [ 
      { answerText: 'answer1', isCorrect: false }, 
      { answerText: 'answer2', isCorrect: false }, 
      { answerText: 'answer3', isCorrect: true }, 
      { answerText: 'answer4', isCorrect: false }, 
    ], 
  } 
];

// 获取第一个问题的正确选项
const correctAnswer = questions[0].answerOptions.find(option => option.isCorrect === true);

console.log(correctAnswer); 
// 输出:{ answerText: 'answer3', isCorrect: true }

解释:先通过questions[0]拿到数组里的第一个问题对象,再访问它的answerOptions数组,find()会遍历数组,返回第一个满足isCorrect: true的选项。

方法2:获取所有问题的正确选项

如果你的questions数组里有多个问题,想一次性拿到每个问题的正确选项,可以用map()+find()组合:

const allCorrectAnswers = questions.map(question => {
  return question.answerOptions.find(option => option.isCorrect === true);
});

console.log(allCorrectAnswers); 
// 输出一个数组,每个元素对应一个问题的正确选项

方法3:找单个问题里的所有正确选项(支持多正确答案)

如果某个问题可能有多个正确选项,就用filter()——它会返回所有符合条件的元素:

const allCorrectInFirstQuestion = questions[0].answerOptions.filter(option => option.isCorrect === true);

console.log(allCorrectInFirstQuestion); 
// 输出包含所有正确选项的数组(如果有多个的话)

方法4:基础遍历法(适合新手理解逻辑)

要是你想更直观地理解遍历过程,用forEach手动查找也可以:

let correctOption;

questions.forEach(question => {
  question.answerOptions.forEach(option => {
    if (option.isCorrect === true) {
      correctOption = option;
      // 注意:forEach没法直接中断遍历,如果找到就想停,可以换成for循环
    }
  });
});

console.log(correctOption);

内容的提问来源于stack exchange,提问作者Ahmed G.

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 12:37:27