js实现随机打乱数组顺序并输出

function randomilize(arr){
    var length=arr.length;
    var arr1=new Array(); 
    for(var i=0;i<length;i++)
    {
        arr1[i]=i;
    }   //建立数组下标数组
    var arr2=new Array();
    for(var i=0;i<length;i++)
    {
        arr2[i]=arr1.splice(Math.floor(Math.random()*arr1.length),1);
    }  //将数组下标随机打乱
    var arr3=new Array();
    for(var i=0;i<length;i++)
    {
        arr3[i]=arr[arr2[i]];
    }  //将数组按打乱后的下标输出
    return arr3;
}

//测试代码
var arr=[1,"a",3,"b",5,"c",7];
(function(arr){
       var ar=randomilize(arr);
       console.log(ar.join(","));
})(arr);

测试结果如下:

posted @ 2015-03-18 16:10  王王凌霄  阅读(3041)  评论(0编辑  收藏  举报