javascript - 坚持得到每个问题的答案,测验
问题描述
请帮我做这个练习!我有一个 API 链接https://opentdb.com/api.php?amount=10 我必须从该 API 获取数据才能使用 javascript 进行简单的测验(是的,很简单,但我不知道该怎么做它,对我来说很难)。问题是我确实得到了问题出现在页面上,但 10 个问题的答案相同。我的意思是应该是 10 个问题,里面有 10 个不同的数组,里面有不同的答案。我被困在这里,不知道该怎么做。:(
$.getJSON(url, function (data) { var myQuestions = data.results;
for (question of myQuestions) {
var correctAnswer = question.correct_answer;
var totAnswers = question.incorrect_answers;
totAnswers.push(correctAnswer);
// console.log(totAnswers);
}
function buildQuiz() {
const output = [];
myQuestions.forEach((currentQuestion, questionNumber) => {
const answers = [];
for (value of totAnswers) {
console.log(value);
answers.push(
`<label>
<input type="radio" name="question${questionNumber}" value="${value}">
${value}
</label>`
);
}
output.push(
`<div class="slide">
<div class="question"> ${currentQuestion.question} </div>
<div class="answers"> ${answers.join("")} </div>
</div>`
);
});
quizContainer.innerHTML = output.join('');
}
这是它现在的样子:
我认为问题在于我将循环用于 totAnswers 变量。但我不明白为什么。任何人都可以给我一些提示吗?
解决方案
我不明白你为什么要形成totAnswers
你想要实现的目标可以这样完成:
function buildQuiz() {
const output = myQuestions.map((currentQuestion, questionNumber) => (
`<div class="slide">
<div class="question">
${currentQuestion.question}
</div>
<div class="answers">
${currentQuestion.incorrect_answers.concat(currentQuestion.correct_answer).join('')}
</div>
</div>`))
quizContainer.innerHTML = output.join('');
};
推荐阅读
- javascript - 从 Node 中的 URL 下载 CSV
- rust - Rust 特征别名
- r - predict.MCMCglmm 错误——给出广泛的非粒度值
- javascript - 从多个下拉菜单中将选定的多个值复制到文本框
- c++ - 可以使用此方法对向量的 3 个值(连续)进行排序吗?
- c - C语言strlen函数,字符串中有换行符
- react-table - 如何在 react-table checkboxHOC (6.8.6) 中禁用特定行上的复选框
- c# - 将 Excel 中的复制/粘贴从 VBA 代码转换为 C#
- mysql - 在树结构中获取任何级别的孩子,但没有他们的孩子使用 Hibernate?
- angular - 如何在 VSCODE 中配置部署源?