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.
相关产品推荐
相关产品推荐

