Javascript 随机选择并对每个选择重复特定次数
我想从数组中随机选择一个项目,直到指定了最大重复时间Javascript 随机选择并对每个选择重复特定次数,javascript,arrays,random,repeat,Javascript,Arrays,Random,Repeat,我想从数组中随机选择一个项目,直到指定了最大重复时间 var array = ["cat", "dog"]; var maxRepeat = 10; 我想把猫和狗各退回10次,这样就可以按随机顺序总共退回20次。 比如: cat cat dog cat dog dog cat cat dog cat dog dog dog cat cat dog cat cat dog dog 你可以用下面的方法来做 函数洗牌(a){ for(设i=a.length;i;i--){ 设j=Math.flo
var array = ["cat", "dog"];
var maxRepeat = 10;
我想把猫和狗各退回10次,这样就可以按随机顺序总共退回20次。
比如:
cat
cat
dog
cat
dog
dog
cat
cat
dog
cat
dog
dog
dog
cat
cat
dog
cat
cat
dog
dog
你可以用下面的方法来做
函数洗牌(a){
for(设i=a.length;i;i--){
设j=Math.floor(Math.random()*i);
[a[i-1],a[j]=[a[j],a[i-1]];
}
}
设arr=[“猫”、“狗”];
设temp=[];
对于(让str的arr){
温度=温度混凝土(阵列(10)填充(str));
}
洗牌(临时);
控制台日志(temp)代码>var数组=[“猫”、“狗”];
var maxRepeat=10;
var occObj={};
对于(var i=0;i
我使用object来存储特定值显示的次数。您可以使用simple进行循环,然后使用push或unshift,两者在每个元素上都有50%的几率
var数组=[“猫”、“狗”];
var maxRepeat=10;
常数随机=函数(arr,n){
变量c=0,r=[],总=n*arr.length;
对于(变量i=0;i var rand=Math.random()很难确切地知道您要的是什么,但是这里有一个函数,它将返回一个随机的“cat”
或“dog”
(每只动物10次;在所有动物都耗尽后,它将返回null
):
var数组=[“猫”、“狗”],
maxRepeat=10;
让getRandomAnimal=(()=>{
让totalAnimals=maxRepeat*array.length,
动物=新数组(totalAnimals),
指数=0;
for(设i=0;iMath.floor(Math.random()-0.5));
return()=>{
返回((索引>=totalAnimals)?空:动物[index++];
};
})();
var array = ["cat", "dog"];
var maxRepeat = 10;
var occObj= {};
for(var i = 0; i < array.length * maxRepeat; i++){
var occ = array[Math.floor(Math.random() * array.length)];
if(occObj[occ]){
if(occObj[occ].count < maxRepeat){
occObj[occ].count++;
console.log(occ);
}else{
i--; //if the particular value was displayed "maxRepeat" times already, we need to make sure we run the loop again
}
}else{
occObj[occ] = {}
occObj[occ].count = 1;
console.log(occ);
}
}
var array = ["cat", "dog"],
maxRepeat = 10;
let getRandomAnimal = (() => {
let totalAnimals = maxRepeat * array.length,
animals = new Array(totalAnimals),
index = 0;
for (let i = 0; i < totalAnimals; ++i) {
animals[i] = array[i % array.length];
}
animals.sort(() => Math.floor(Math.random() - 0.5));
return () => {
return ((index >= totalAnimals) ? null : animals[index++]);
};
})();