今天弄了一个小功能,有一个数组,当每次刷新时,数组会随机重新排序生成新的数组。
直接上代码:
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
function shuffle(arr) {
var cloneArr = arr.concat();
var len = cloneArr.length;
for(var i = 0; i < len; i++) {
var index = Math.floor(Math.random() * cloneArr.length);
var temp = cloneArr[index];
cloneArr[index] = cloneArr [i];
cloneArr[i] = temp;
}
return cloneArr
}
console.log(shuffle(arr))
还有更简单易理解的写法:
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;
}
console.log(shuffle(arr))
还可以精简写为:
function shuffle(v1,v2) {
return Math.random()-0.5
}
console.log(arr.sort(shuffle))
这篇博客分享了三种使用JavaScript实现数组随机排序的方法。第一种通过创建副本并交换元素实现;第二种在原数组上直接操作,从后向前遍历;第三种利用数组sort方法结合随机函数。这些代码简洁易懂,适用于需要随机化数组的场景。
2201

被折叠的 条评论
为什么被折叠?



