今天弄了一個小功能,有一個數組,當每次刷新時,數組會隨機重新排序生成新的數組。
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))