【发布时间】:2016-01-04 16:41:22
【问题描述】:
我有问题。当我对从位置 1 开始并在位置 49 结束的数组进行混洗时,在控制台中输出时似乎有一个元素未定义。
for (var i = 49; i > 0; i--) {
var j = Math.floor(Math.random() * (i + 1));
var temp = genNr[i];
genNr[i] = genNr[j];
genNr[j] = temp;
}
请帮帮我。
【问题讨论】:
-
在这个函数操作之前 genNr 中有什么?
-
您需要提供围绕您发布的循环的循环...我猜它是使用
j索引的,genNr数组在哪里初始化?这可能是索引越界问题! -
数组中有多少个元素?也就是说
49从哪里来? -
genNr 在顶部初始化。这是完整的脚本pastebin.com/cJJ4Gy9u
-
数组在 JavaScript 中从
0开始。如果长度为49,则最后一个元素位于索引48而不是49。
标签: javascript arrays sorting shuffle