js随机打乱一个数组

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/liaozhongping/article/details/53422980
//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);
})()
阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页