【发布时间】:2026-02-01 12:20:08
【问题描述】:
我正在尝试生成 1-5、1-10、1-20 等之间的非重复随机数。我正在使用 Fisher-Yates Shuffle,但我不确定我是否已在最好的方式。我的计划是将每个随机数与预定的变量名称相关联。我想确保将随机值分配给预定变量名的语法是正确的。我是 JavaScript 新手,如果有任何见解,我将不胜感激。这是我的第一个版本:
function shuffle(array) {
var i = array.length,
j = 0,
temp;
while (i--) {
j = Math.floor(Math.random() * (i+1));
temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
var ranNums = shuffle([1,2,3,4,5]);
var ranNum1 = ranNums.value;
var ranNum2 = ranNums.value;
var ranNum3 = ranNums.value;
var ranNum4 = ranNums.value;
var ranNum5 = ranNums.value;
【问题讨论】:
-
如果您的代码正在运行,并且您希望获得有关它的一般反馈(“代码审查”),请将您的问题发布到 codereview.stackexchange.com。如果您的代码不起作用,请编辑您的问题以清楚说明什么不起作用,以及您收到的任何错误消息。
-
你的问题中提到 我正在使用 Fisher-Yates Shuffle 但我不确定我是否以最好的方式实现它使它看起来就像代码审查问题一样,但是您不了解如何将数组的各个值分配给变量这一事实使您怀疑您自己编写了此代码,这是代码审查的要求。
-
你是对的,这个版本的fisher-yates shuffle不是我自己写的,虽然我确实打算使用它。我缺乏对 JS 的了解,我想确保我正确地分配了变量,显然我没有。提供的答案有效,谢谢。
标签: javascript variables random shuffle