Closed liushuangls closed 5 years ago
原理:
从数组末尾开始,选取最后一个元素,然后在所有位置中随机产生一个位置,与最后一个元素交换。
对数组倒数第二个元素,在除去最后一个元素以外的所有位置中随机产生一个位置,与倒数第二个元素交换。
依次重复以上步骤。
shuffle(arr) { const newArr = arr.concat([]) let len = arr.length while (len) { let i = Math.floor(Math.random() * len--) ;[newArr[len], newArr[i]] = [newArr[i], newArr[len]] } return newArr }
原理:
从数组末尾开始,选取最后一个元素,然后在所有位置中随机产生一个位置,与最后一个元素交换。
对数组倒数第二个元素,在除去最后一个元素以外的所有位置中随机产生一个位置,与倒数第二个元素交换。
依次重复以上步骤。