我想为地理课构建一个简单的测验应用程序,我的逻辑是:将问题存储到数组中,并从数组中提取随机问题,当用户单击答案时,会触发一个函数并比较答案,回答后从数组中排除问题并拉出另一个随机问题 到目前为止,我设法拉出随机问题,给出答案,比较答案,并从数组中删除问题,然后拉出另一个随机问题,但是当函数启动时,答案与第一个随机问题进行比较
到目前为止,这里是y代码:
let judet = judete[Math.floor(Math.random() * judete.length)];
console.log("start> "+judet);
function checkAnswer(val){
console.log("ras= "+val)
if(val==judet){
console.log("corect");
let valueToRemove = val;
let filteredItems = judete.filter(item => item !== valueToRemove);
let judet = judete[Math.floor(Math.random() * judete.length)];
console.log("inrebare= "+judet);
}else{
console.log("gresit");
let valueToRemove = val;
let filteredItems = judete.filter(item => item !== valueToRemove);
let judet = judete[Math.floor(Math.random() * judete.length)];
console.log("inrebare= "+judet);
}
}
答案 0 :(得分:0)
就像@Dave在评论中说的那样,您可以将数组随机播放,然后弹出。
var arr = [1, 2, 3, 4, 5];
for (var i = 0; i < 5; i++) {
shuffle(arr);
console.log(arr.pop());
}
function shuffle(array) {
for (let i = array.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
Keep re-running me to see the result.
答案 1 :(得分:0)
@Saud,您为我指明了正确的方向,这是我的工作方式:
let judete = ["ar","ab","ag","tm","bh"];
shuffle(judete);
function shuffle(array) {
for (let i = array.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
}
let judet = judete.pop();
console.log("start> "+judet);
function checkAnswer(val){
console.log("ras= "+val);
if(val==judet){
console.log("corect");
shuffle(judete);
judet = judete.pop();
console.log("inrebare= "+judet);
}else{
console.log("gresit");
shuffle(judete);
judet = judete.pop();
console.log("inrebare= "+judet);
}
}
答案 2 :(得分:0)
为什么不使用randojs.com?
var arr = randoSequence(["question 1", "question 2", "question 3"]);
for(var i = arr.length - 1; i >= 0; i--){
console.log(arr.pop().value);
}
如果您想使用我的答案,只需将其包括在您的头部标签中即可
<script src="https://randojs.com/1.0.0.js"></script>