首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Javascript中随机化数组的子集?

如何在Javascript中随机化数组的子集?
EN

Stack Overflow用户
提问于 2010-10-27 04:51:45
回答 4查看 1.3K关注 0票数 1

在Javascript中随机化部分数组的最佳方法是什么

例如,如果我在数组中有100个项目,那么每10次对集合进行随机化的快速有效的方法是什么?在数据项内将0到9之间项随机化到items9。在data items10到items19中,10到19之间的项被随机化,依此类推。

EN

回答 4

Stack Overflow用户

发布于 2010-10-27 04:57:00

你可以调整这里描述的数组混洗方法:http://jsfromhell.com/array/shuffle

它基于Fisher-Yates (Knuth)算法(http://en.wikipedia.org/wiki/Fisher–Yates_shuffle)。

票数 3
EN

Stack Overflow用户

发布于 2010-10-27 05:00:25

我将只使用内置的slice、concat和sort方法。就像这样。

代码语言:javascript
复制
function shuffle(arr, start, end) {
 return arr.slice(start, end).sort(function() { return .5 - Math.random(); }).concat(arr.slice(end));
};

这就是基本思想,你可能想要制定一个算法,每隔10个元素进行切片,排序并重新连接集合。

编辑:阅读下面的评论,了解为什么此解决方案可能不适合您的需求。

票数 1
EN

Stack Overflow用户

发布于 2010-10-27 04:58:40

我会将1数组分成10个子集,然后在这些子集上执行您选择的随机算法,然后按正确的顺序重新组合。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4027910

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档