在Javascript中随机化部分数组的最佳方法是什么
例如,如果我在数组中有100个项目,那么每10次对集合进行随机化的快速有效的方法是什么?在数据项内将0到9之间项随机化到items9。在data items10到items19中,10到19之间的项被随机化,依此类推。
发布于 2010-10-27 04:57:00
你可以调整这里描述的数组混洗方法:http://jsfromhell.com/array/shuffle
它基于Fisher-Yates (Knuth)算法(http://en.wikipedia.org/wiki/Fisher–Yates_shuffle)。
发布于 2010-10-27 05:00:25
我将只使用内置的slice、concat和sort方法。就像这样。
function shuffle(arr, start, end) {
return arr.slice(start, end).sort(function() { return .5 - Math.random(); }).concat(arr.slice(end));
};这就是基本思想,你可能想要制定一个算法,每隔10个元素进行切片,排序并重新连接集合。
编辑:阅读下面的评论,了解为什么此解决方案可能不适合您的需求。
发布于 2010-10-27 04:58:40
我会将1数组分成10个子集,然后在这些子集上执行您选择的随机算法,然后按正确的顺序重新组合。
https://stackoverflow.com/questions/4027910
复制相似问题