数组随机重组(洗牌)

Posted web半晨

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数组随机重组(洗牌)相关的知识,希望对你有一定的参考价值。


1、代码

let reorganize = function (arr){
	let rest = [];
	while (arr.length > 0) {
		let random = Math.floor(Math.random() * arr.length);
		// 把获取到的值放到新定义的数组中
		rest.push(arr[random]);
		// 这句代码的作用是改变获取随机数的最大值,
		// 防止获取到数组长度之外的随机数
		// 同时也是限制了重复获取
		// 删除原数组中已经获取到的数值
		arr.splice(random, 1);
	}
	return rest;
};

console.log(reorganize([1, 2, 3, 5, 6, 8, 4, 9, 7]));

2、演示

1.1.3X


1.1.3P

以上是关于数组随机重组(洗牌)的主要内容,如果未能解决你的问题,请参考以下文章

如何在 C# 中以相同的方式随机化/洗牌两个数组

随机打乱数组顺序之随机洗牌算法

如何随机洗牌一个数组

随机洗牌

markdown 洗牌算法:数组随机排序

随机种子数组洗牌