要在 JavaScript 中正确打乱数组,请使用Fisher-Yates 打乱算法。该算法循环遍历数组中的每个元素,并将其与数组中的随机元素交换,如下所示。

let array = [1, 2, 3, 4, 5];

for(let i = array.length - 1; i >= 1; i--) {
let j = Math.floor(Math.random() * (i + 1)); // 0 <= j <= i
let temp = array[j];
array[j] = array[i];
array[i] = temp;
}
console.log(array);


要在相反的方向执行此操作,请执行以下操作:

let array = [1, 2, 3, 4, 5];

for(let i = 0; i <= array.length - 2; i++) {
    let j = Math.floor(Math.random() * array.length); // i <= j < array.length
    let temp = array[i];
    array[i] = array[j];
    array[j] = temp;
}
console.log(array);

By lxcss

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注