JavaScript 中随机排列数组

Posted by cl9000 on July 08, 2020

To the one with a hammer, everything looks like a nail. (手中有锤,看什么都像钉)——<芒格>

此代码段在此处使用Fisher-Yates改组算法对指定数组进行改组。
Fisher-Yates - https://www.wikiwand.com/en/Fisher%E2%80%93Yates_shuffle

1
2
3
4
5
6
7
8
9
10
11
12
function shuffle(arr) {
var i,
j,
temp;
for (i = arr.length - 1; i > 0; i--) {
j = Math.floor(Math.random() * (i + 1));
temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
return arr;
};

例子:

1
2
3
4
var a = [1, 2, 3, 4, 5, 6, 7, 8];
var b = shuffle(a);
console.log(b);
// [2, 7, 8, 6, 5, 3, 1, 4]

参考

关注【公众号】,了解更多。



支付宝打赏 微信打赏

赞赏一下 坚持原创技术分享,您的支持将鼓励我继续创作!