var test = [1, 2, 3, 4, 5]
var Quiz = [];
for (var i=0; i<5; i++){
shuffle(test)
Quiz[i] = {
options: [],
correct: Math.floor((Math.random() * 5) + 1)
};
for(quizS of Quiz){
quizS.options.push = test
}
}
console.log(Quiz);
function shuffle(arra1){
var ctr = arra1.length, temp, index;
while (ctr > 0) {
index = Math.floor(Math.random() * ctr);
ctr--;
temp = arra1[ctr];
arra1[ctr] = arra1[index];
arra1[index] = temp;
}
return arra1;
}
所以我试图通过for循环创建一个数组(测验),其中每个单独的数组都有自己的某个数组(测试)的随机顺序。 我在控制台日志中获得的是所有数组中的随机顺序。如何为每个单独的数组随机化/随机播放它?
答案 0 :(得分:0)
以下是您所需的解决方案:
您必须克隆数组以便在不更改原始数组的情况下进行分配
使用,slice(0)
克隆数组。
<强> var a = shuffle(test).slice(0)
强>
var test = [1, 2, 3, 4, 5]
var Quiz = [];
var random = {};
function shuffle(arra1) {
var ctr = arra1.length, temp, index;
while (0 !== ctr) {
index = Math.floor(Math.random() * ctr);
ctr -= 1
temp = arra1[ctr];
arra1[ctr] = arra1[index];
arra1[index] = temp;
}
return arra1;
}
for (var i = 0; i < 5; i++) {
var a = shuffle(test).slice(0)
Quiz.push({
options: a,
riktig: Math.floor((Math.random() * 5) + 1)
});
}
console.log(Quiz);
请运行以上代码段