如何随机打乱一个js数组?

该文章由 leevare 发布于 ,归类于 Javascript

例如一个数组为[3, 3, 6, 0, 6],现在想让该数组内部随机打乱,例如变成如下形式

[6, 0, 6, 3, 3]

由于js本身没有shuffle方法,所以就要自己实现一个shuffle方法来达到这个目的。

/**
 * Shuffles array in place.
 * @param {Array} a items The array containing the items.
 */
function shuffle(a) {
    var j, x, i;
    for (i = a.length; i; i--) {
        j = Math.floor(Math.random() * i);
        x = a[i - 1];
        a[i - 1] = a[j];
        a[j] = x;
    }
}

ES6的写法

/**
 * Shuffles array in place. ES6 version
 * @param {Array} a items The array containing the items.
 */
function shuffle(a) {
    for (let i = a.length; i; i--) {
        let j = Math.floor(Math.random() * i);
        [a[i - 1], a[j]] = [a[j], a[i - 1]];
    }
}

然后这样使用

var myArray = ['1','2','3','4','5','6','7','8','9'];
shuffle(myArray);

此时的myArray已经被重新打乱了。

文章参考自:https://stackoverflow.com/questions/6274339/how-can-i-shuffle-an-array

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

说点什么

avatar
300
  Subscribe  
提醒