且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何对Javascript数组进行混洗以确保每个索引在新数组中都处于新位置?

更新时间:2023-09-06 22:14:46

您在Python中发布了Sattolo算法的链接:

You posted a link with Sattolo's algorithm in Python:

from random import randrange

def sattoloCycle(items):
    i = len(items)
    while i > 1:
        i = i - 1
        j = randrange(i)  # 0 <= j <= i-1
        items[j], items[i] = items[i], items[j]
    return

此处已翻译为JavaScript:

Here it is translated to JavaScript:

function sattoloCycle(items) {
  for(var i = items.length; i-- > 1; ) {
    var j = Math.floor(Math.random() * i);
    var tmp = items[i];
    items[i] = items[j];
    items[j] = tmp;
  }
}