一个30个数的数组,每次随机取6位,总共取5次,全部取完,也是为了让每个数字都取到。5次之后又重新开始取数
用JavaScript实现。
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="x-ua-compatible" content="IE=edge, chrome=1">
<title></title>
</head>
<body>
<script>
var test = [];
for(var i=0;i<30;i++){
test.push(i);
}
function randomGet(arr,times){
if(times<=0){
return;
}
var tempArr = arr.slice(0);
var aver = tempArr.length/times;
var ind;
for(var j =0;j<times;j++){
var temp=[];
for(var i=0;i<aver;i++){
ind =parseInt(Math.round(Math.random())*(tempArr.length-1));
temp.push(tempArr[ind]);
tempArr.splice(ind,1);
}
console.log(temp)
}
}
randomGet(test,5);
</script>
</body>
</html>
const iterate = (time, xs) => {
if (!time) {
return;
}
const dict = {};
xs.forEach((e, i) => dict[i] = e);
let ys = [];
while (Object.keys(dict).length) {
const keys = Object.keys(dict);
const randomKey = keys[~~(Math.random() * keys.length)];
const number = dict[randomKey];
delete dict[randomKey];
ys.push(number);
if (ys.length == 6) {
console.log(ys);
ys = [];
}
}
iterate(time - 1, xs);
}
var xs = Array(30).fill(0).map((_, i) => i + 1);
iterate(10, xs);
10 回答11.1k 阅读
6 回答3k 阅读
5 回答4.8k 阅读✓ 已解决
4 回答3k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
3 回答5.1k 阅读✓ 已解决
5 回答1.9k 阅读
你看这个符合要求?