洗牌算法-shuffle
2021-06-08 21:02
标签:随机 实例 item for random 数组 变量 元素 调用 打乱顺序 等概率的抽取数组中的每一个数,跟最后一个元素交换 洗牌算法-shuffle 标签:随机 实例 item for random 数组 变量 元素 调用 原文地址:https://www.cnblogs.com/rookie123/p/14508424.htmlshuffle算法-洗牌算法
算法的作用
算法的实现
// 使用闭包,防止变量污染
(function() {
function shuffle() {
// 调用形式: arr.shuffle(); 这里的this指向Array实例
let arr = this;
for (let i = arr.length; i >= 0; --i) {
let randomIndex = Math.floor(Math.random() * (i + 1));
let itemAtIndex = arr[randomIndex];
arr[randomIndex] = arr[i];
arr[i] = itemAtIndex;
}
return arr;
}
// 扩展到数组的原型上去
Array.prototype.shuffle = shuffle;
})();
开发中的应用