js隨機打亂一個數組
阿新 • • 發佈:2018-12-29
//法1 function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex; /*method1--bigin*/ while (0 !== currentIndex) { randomIndex = Math.floor(Math.random() * currentIndex); currentIndex -= 1; temporaryValue = array[currentIndex]; array[currentIndex] = array[randomIndex];array[randomIndex] = temporaryValue; } /*method1--end*/ /*method2--begin*/ for(var j, x,i=currentIndex; j=parseInt(Math.random() * i), x = array[--i],array[i] = array[j],this[j] = x); /*method2--end*/ return array; } var arr = [2, 11, 37, 42]; arr = shuffle(arr); console.log(arr); //法2[自定製sort函式] (function(){ var count = 100000,arr = []; for(var i=0;i<count;i++){ arr.push(i); } //常規方法,sort() var t = new Date().getTime(); Array.prototype.sort.call(arr,function(a,b){ return Math.random()>.5 ? -1 : 1;}); document.write(arr+'<br/>'); var t1 = new Date().getTime(); document.write(t1-t);})()