今天弄了一个小功能,有一个数组,当每次刷新时,数组会随机重新排序生成新的数组。
直接上代码:
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))