【发布时间】:2014-09-01 08:28:14
【问题描述】:
我正在尝试从一组答案中获取 3 个随机答案并将它们存储到一个新数组中。 因此,selectedAnswers 的新数组几乎将有 3 个来自答案池的随机答案,以及正确的答案。我想我知道了,但唯一的问题是,如果已经使用了数组元素,我不知道如何让它跳过,而是添加一个不同的元素。所以我最终在我的新数组中有重复。
在此处查看代码。
http://jsfiddle.net/oybojgzm/2/
var answerList = ["answer 1", "answer 2", "answer 3", "answer 4", "answer 5"];
var correctAnswer = "CORRECT!";
var selectedAnswers = [correctAnswer];
var randomNumber = 0;
function randomAnswer() {
if (selectedAnswers.length < 4) {
randomNumber = Math.floor((Math.random() * answerList.length) +
1) - 1;
for (i = 0; i < answerList.length; i++) {
if (answerList[randomNumber] === answerList[i]) {
randomNumber = Math.floor((Math.random() * answerList.length) +
1) - 1;
randomAnswer();
} else {
selectedAnswers.push(answerList[i]);
console.log(selectedAnswers);
randomNumber = Math.floor((Math.random() * answerList.length) +
1) - 1;
randomAnswer();
break;
}
}
}
}
randomAnswer();
【问题讨论】:
-
使用
selectedAnswers.indexOf(answerList[randomNumber])查看答案是否已经在数组中。
标签: javascript arrays