开发者社区 问答 正文

如何随机化(随机播放)JavaScript数组?

我有一个像这样的数组:

var arr1 = ["a", "b", "c", "d"];

如何随机/随机播放?

展开
收起
保持可爱mmm 2020-01-13 10:00:55 442 分享 版权
1 条回答
写回答
取消 提交回答
  • 实际无偏混洗算法是Fisher-Yates(aka Knuth)混洗。

    function shuffle(array) { var currentIndex = array.length, temporaryValue, randomIndex;

    // While there remain elements to shuffle... while (0 !== currentIndex) {

    // Pick a remaining element...
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;
    
    // And swap it with the current element.
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
    

    }

    return array; }

    // Used like so var arr = [2, 11, 37, 42]; arr = shuffle(arr); console.log(arr);

    问题来源于stack overflow

    2020-01-13 10:01:47
    赞同 展开评论
问答分类:
问答地址: