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