Javascript 使用Math.floor、Math.Random向元素随机添加类 客观的
我有60名曲棍球运动员。有10名守门员(球员编号1-10)、20名防守队员(球员编号11-30)和30名前锋(球员编号31-60)。单击按钮Javascript 使用Math.floor、Math.Random向元素随机添加类 客观的,javascript,jquery,for-loop,random,floor,Javascript,Jquery,For Loop,Random,Floor,我有60名曲棍球运动员。有10名守门员(球员编号1-10)、20名防守队员(球员编号11-30)和30名前锋(球员编号31-60)。单击按钮.btn--random应将处于活动状态的职业随机添加到两名守门员、六名防守队员和十二名前锋,并移除处于非活动状态的职业 问题 当我使用一系列for循环和 Math.floor(Math.random())的组合 生成的数字是相同的,这不能像每个玩家一样发生 唯一,只能选择一次 我考虑过使用forEach或indexOf来帮助解决这个问题, 但我对生成的数
.btn--random
应将处于活动状态的职业随机添加到两名守门员、六名防守队员和十二名前锋
,并移除处于非活动状态的职业
问题
- 当我使用一系列for循环和
Math.floor(Math.random())的组合
生成的数字是相同的,这不能像每个玩家一样发生
唯一,只能选择一次
我考虑过使用forEach
或indexOf
来帮助解决这个问题,
但我对生成的数字如何添加类感到非常困惑
对于60位玩家列表中的相应玩家,of处于活动状态
球员特别是这一行
应该在HTML中更改
scripts.js-这就是我取得的成绩
函数随机选择(最小值、最大值){
$(“.btn--random”).on(“单击”,函数(){
//总共有60名曲棍球运动员
//第一个玩家是1,第二个玩家是2,依此类推。。。
//有10名守门员,20名防守队员和30名前锋
//生成两个介于1-10之间的数字
对于(变量i=0;i<2;i++){
var randtow2=Math.floor(Math.random()*10+1);
console.log(randtow2);
如果(randTwo==randTwo){
}
};
//当前生成6个介于1-20之间的数字
//应该在11-30之间生成六个数字
对于(变量i=0;i<6;i++){
var randSix=数学地板(数学随机()*20+1);
console.log(randSix);
如果(randSix==randSix){
}
};
//当前生成12个介于1-30之间的数字
//应该在31-60之间生成两个数字
对于(变量i=0;i<6;i++){
var randSeven=Math.floor(Math.random()*30+1);
控制台日志(RAND12);
如果(RandSeven==RandSeven){
}
};
//将20个随机生成的数字存储到一个数组中?
变量数组=[]
//根据生成的数字添加类'is active'
var player=$(“.player”);
var rand=Math.floor(Math.random()*60);
player.eq(rand.addClass)(“处于活动状态”);
});
}随机选择();
index.html(代码段)
随机
布莱恩·埃尔德
家乡:橡树湖,男人
播放年份:1992-1997
GP
110
GA
2.00
3.12
3.46
2.70
SAV%
.909
.886
.884
.906
因此
0
0
3
2
布莱恩·埃尔德
守门员
您正在使用正确的函数生成随机数,但需要指定随机数的范围
您应该使用以下命令:
Math.floor(Math.random()*30 + 31) //generate random number between 31-60
Math.floor(Math.random()*20 + 11) //generate random number between 11-30
31/21是起始编号
30/20是可能结果的数目您正在使用正确的函数生成随机数,但需要指定随机数的范围
您应该使用以下命令:
Math.floor(Math.random()*30 + 31) //generate random number between 31-60
Math.floor(Math.random()*20 + 11) //generate random number between 11-30
31/21是起始编号
30/20是可能结果的编号请您查看以下代码:
$(文档).ready(函数(){
$(“.btn--random”).on(“单击”,函数(){
var goalies_array=getRandomNumbers(1,10,2);
$(“.goalies”).text(goalies_array.join(“,”);
var defensemen_数组=getRandomNumbers(11,30,6);
$(“.defensemen”).text(defensemen_数组.join(“,”);
var\u数组=getRandomNumbers(31,60,12);
$(“.forwards”).text(forwards\u array.join(“,”);
var players_array=守门员_array.concat(防守队员_array).concat(前锋_array);
//根据生成的数字添加类'is active'
var player=$(“.player”);
$(.is active”).removeClass(“is active”).addClass(“is inactive”);
$.each(玩家\数组、函数(索引、值){
var player_index=value-1;//我们正在使用基于0的索引
player.eq(player_index.find(“.is inactive”).removeClass(“is inactive”).addClass(“is active”);
});
})
Math.floor(Math.random()*30 + 31) //generate random number between 31-60
Math.floor(Math.random()*20 + 11) //generate random number between 11-30
function generateRoster(min, max){
var players = [];
for(var i = min; i <= max; i++){
players.push(i);
}
return _.shuffle(players);
}