gpt4 book ai didi

javascript - 混洗嵌套数组的不同部分

转载 作者:行者123 更新时间:2023-11-30 15:32:46 26 4
gpt4 key购买 nike

我正在尝试构建一个多项选择测验,它不仅每次都会打乱四个答案选项,还会打乱每次用户参加相同测验时问题出现的顺序。

这是我正在处理的代码:

function fisherYates(myArray) {
var i = myArray.length, j, tempi, tempj;
if (i === 0) return false;
while (--i) {
j = Math.floor(Math.random() * (i + 1));
tempi = myArray[i];
tempj = myArray[j];
myArray[i] = tempj;
myArray[j] = tempi;
}
}
$(function() {
content = [
["Q1",["Q1-1", "Q1-2", "Q1-3", "Q1-4"]],
["Q2",["Q2-1", "Q2-2", "Q2-3", "Q2-4"]],
["Q3",["Q3-1", "Q3-2", "Q3-3", "Q3-4"]]
];

$.each(content, function(i) { fisherYates(this) });
fisherYates(content);
})

这会打乱问题,但我发现我还需要更深入地打乱嵌套在每个问题值下的选项。我对 $.each() 的工作原理以及如何让它在嵌套数组中运行的理解有限。

重要的是生成的数组不应将打乱的选项与其相关联的问题分开。

不确定嵌套数组是否是解决此问题而不是使用散列的正确方法(尽管线索可能在于我在最后一段中使用了“关联”一词!)

TIA

最佳答案

您的代码使用答案表随机排列问题。您只需要在每个函数中更深入一层。

$(function() {
content = [
["Q1",["Q1-1", "Q1-2", "Q1-3", "Q1-4"]],
["Q2",["Q2-1", "Q2-2", "Q2-3", "Q2-4"]],
["Q3",["Q3-1", "Q3-2", "Q3-3", "Q3-4"]]
];

$.each(content, function(i) { fisherYates(this[1]) });
fisherYates(content);
});

关于javascript - 混洗嵌套数组的不同部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42000189/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com