JS允许我设置天气类型



我在创建此代码时的目标是能够设置每种天气类型的独特特征,并且能够通过生成随机数来随机设置一种天气类型。

我创建了11种不同的天气类型,使它们都是天气的对象。然后,我制作了一个getWeather函数,该函数将允许我获取随机天气类型,然后将其独特的特征(id,type,healthChange,mileChange(保存到Weather中。但是,它似乎不起作用。我相信错误是通过我的随机天气函数,我认为一旦我得到随机数,我对该怎么做没有正确的想法。有人可以帮我一把吗?我也认为这比我拥有的更多。我不确定天气(非常热(是否在做任何事情。我希望它做的是允许我随机选择天气,并获取它的变量,以便我可以操作我的 HTML。

function Weather(id,type,healthChange,mileChange,probability) {
this.id = id;
this.type = type;
this.healthChange = healthChange;
this.mileChange = mileChange;
this.probability = probability;
}
veryHot = new Weather("1", "Very Hot","-9",".7",".1");
hot = new Weather("2", "Hot","-3",".9",".1");
warm = new Weather("3", "Warm","1","1",".2");
cool = new Weather("4", "Cool","1",".95",".1");
cold = new Weather("5", "Cold","-5",".8",".1");
veryCold = new Weather("6", "Very Cold","-12",".7",".1");
rain = new Weather("1", "Rain","-4",".6",".1");
heavyRain = new Weather("1", "Heavy Rain","-8",".4",".05");
snow = new Weather("1", "Snow","-15",".3",".05");
blizzard = new Weather("1", "Blizzard","-30",".1",".05");
heavyFog = new Weather("1", "Heavy Fog","-3",".5",".05");
function getWeather() {
var randomNumber = Math.floor(Math.random() * 100);
if(randomNumber <= 10 ) {
weather(veryHot);
}
if((randomNumber > 10) && (randomNumber <= 20)) {
weather(hot);
}
if((randomNumber > 20) && (randomNumber <= 40)) {
weather(warm);
}
if((randomNumber > 40) && (randomNumber <= 50)) {
weather(cool);
}
if((randomNumber > 50) && (randomNumber <= 60)) {
weather(cold);
}
if((randomNumber > 60) && (randomNumber <= 70)) {
weather(veryCold);
}
if((randomNumber > 70) && (randomNumber <= 80)) {
weather(rain);
}
if((randomNumber > 80) && (randomNumber <= 85)) {
weather(heavyRain);
}
if((randomNumber > 85) && (randomNumber <= 90)) {
weather(snow);
}
if((randomNumber > 90) && (randomNumber <= 95)) {
weather(blizzard);
}
if((randomNumber > 95) && (randomNumber <= 100)) {
weather(heavyFog);
}
}

将对象放入数组中,然后根据数组的长度生成一个随机数。现在,如果添加或删除天气对象,则无需更改任何内容。

function Weather(id,type,healthChange,mileChange,probability) {
this.id = id;
this.type = type;
this.healthChange = healthChange;
this.mileChange = mileChange;
this.probability = probability;
}
var arrWeather = [new Weather("1", "Very Hot","-9",".7",".1"),
new Weather("2", "Hot","-3",".9",".1"),
new Weather("3", "Warm","1","1",".2"),
new Weather("4", "Cool","1",".95",".1"),
new Weather("5", "Cold","-5",".8",".1"),
new Weather("6", "Very Cold","-12",".7",".1"),
new Weather("1", "Rain","-4",".6",".1"),
new Weather("1", "Heavy Rain","-8",".4",".05"),
new Weather("1", "Snow","-15",".3",".05"),
new Weather("1", "Blizzard","-30",".1",".05"),
new Weather("1", "Heavy Fog","-3",".5",".05")];

function getRandomWeather() {
var randomNumber = Math.floor(Math.random() * arrWeather.length);    
return arrWeather[randomNumber];
}
var weather = getRandomWeather();
console.log(weather);
//Lets populate the HTML
for (var property in weather) {
if (weather.hasOwnProperty(property)) {
document.querySelector("#weather ." + property).innerHTML = weather[property];
}
}
<div id="weather">
<h2 class="type"></h2>
<dl>
<dt>ID</dt>
<dd class="id"></dd>
<dt>Health Change</dt>
<dd class="healthChange"></dd>
<dt>Mile Change</dt>
<dd class="mileChange">
<dt>Probability</dt>
<dd class="probability"></dd>
</dl>
</div>

function Weather(id,type,healthChange,mileChange,probability) {
this.id = id;
this.type = type;
this.healthChange = healthChange;
this.mileChange = mileChange;
this.probability = probability;
}
veryHot = new Weather("1", "Very Hot","-9",".7",".1");
hot = new Weather("2", "Hot","-3",".9",".1");
warm = new Weather("3", "Warm","1","1",".2");
cool = new Weather("4", "Cool","1",".95",".1");
cold = new Weather("5", "Cold","-5",".8",".1");
veryCold = new Weather("6", "Very Cold","-12",".7",".1");
rain = new Weather("1", "Rain","-4",".6",".1");
heavyRain = new Weather("1", "Heavy Rain","-8",".4",".05");
snow = new Weather("1", "Snow","-15",".3",".05");
blizzard = new Weather("1", "Blizzard","-30",".1",".05");
heavyFog = new Weather("1", "Heavy Fog","-3",".5",".05");
function getWeather() {
var randomNumber = Math.floor(Math.random() * 100);
if(randomNumber <= 10 ) {
return veryHot;
}
if((randomNumber > 10) && (randomNumber <= 20)) {
return hot;
}
if((randomNumber > 20) && (randomNumber <= 40)) {
return warm;
}
if((randomNumber > 40) && (randomNumber <= 50)) {
return cool;
}
if((randomNumber > 50) && (randomNumber <= 60)) {
return cold;
}
if((randomNumber > 60) && (randomNumber <= 70)) {
return veryCold;
}
if((randomNumber > 70) && (randomNumber <= 80)) {
return rain;
}
if((randomNumber > 80) && (randomNumber <= 85)) {
return heavyRain;
}
if((randomNumber > 85) && (randomNumber <= 90)) {
return snow;
}
if((randomNumber > 90) && (randomNumber <= 95)) {
return blizzard;
}
if((randomNumber > 95) && (randomNumber <= 100)) {
return heavyFog;
}
}

最新更新