首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >混洗嵌套数组的不同部分

混洗嵌套数组的不同部分
EN

Stack Overflow用户
提问于 2017-02-02 18:48:54
回答 1查看 163关注 0票数 1

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

下面是我正在编写的代码:

代码语言:javascript
复制
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()的工作原理以及如何让它在嵌套数组中运行的理解有限。

最重要的是,结果数组不应该将随机选项与它们关联的问题分开。

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

提亚

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-02 19:10:14

您的代码将问题与答题表打乱。您只需要在each函数中深入一层。

代码语言:javascript
复制
$(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);
});
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42000189

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档