每日算法-随机打乱数组元素

方法一

function shuffle(array) {
     var copy=[],
        n = array.length,
        i;
    // 如果还剩有元素。。
    while (n) {
        // 随机选取一个元素
        i = Math.floor(Math.random() * array.length);
        if(i in array){
            copy.push(array[i]);
            delete array[i];
            n--;
        }
    }
    return copy;
}//我认为效率不高

方法二

function shuffle(array) {
     var copy=[],
        n = array.length,
        i;
    // 如果还剩有元素。。
    while (n) {
        // 随机选取一个元素
        i = Math.floor(Math.random() * n--);
            copy.push(array.splice(i,1)[0]);     
            //n--;   
    }
    return copy;
}//还可以

方法三

function shuffle(array) {
var temp,
n = array.length,
i;
// 如果还剩有元素。。
while (n) {
// 随机选取一个元素
i = Math.floor(Math.random() * n–);
t=array[i];
array[i]=array[n];
array[n]=t;

}
return array;

}