Javascript 试图为特定场景建立一个随机变量,但结果似乎忽略了;如果;陈述
我试图为特定地图获取随机气候条件,但我不希望某些地图出现特定气候条件(例如,如果该地区是热带地区,我不希望有冰雪)。以下是我正在设置的条件的示例:Javascript 试图为特定场景建立一个随机变量,但结果似乎忽略了;如果;陈述,javascript,variables,key,Javascript,Variables,Key,我试图为特定地图获取随机气候条件,但我不希望某些地图出现特定气候条件(例如,如果该地区是热带地区,我不希望有冰雪)。以下是我正在设置的条件的示例: let climate; if (mapNumber === "One" || "Three" || "Four") { climate = ["dry", "light rain", "medium rain", &
let climate;
if (mapNumber === "One" || "Three" || "Four") {
climate = ["dry", "light rain", "medium rain", "heavy rain", "light snow", "medium snow", "heavy snow", "light ice", "very icy", "severe ice"];
climateCondition = Math.floor(Math.random() * climate.length);
keyClim = climate[climateCondition];
} else if (mapNumber === "Two" || "Five") {
climate = ["dry", "light rain", "medium rain", "heavy rain"];
climateCondition = Math.floor(Math.random() * climate.length);
keyClim = climate[climateCondition];
} else climate = false;
console.log("Climate conditions", climateCondition, climate[climateCondition]);
当我第一次调用它时,我只是为每个映射创建了单独的条件,但是代码太长了,我正试图重构成少量的代码(大约小5倍)
因此,我希望发生的是,我有一个全局变量“1”、“2”、“3”、“4”或“5”(目前,但如果需要,我希望能够添加更多)。因此,在本例中,地图“一”、“三”和“四”可以形成冰雪(虽然我实际上更喜欢地图“四”只包含小雪和小冰,但我可以在排序到目前为止时计算出来)。然后该变量可以稍后用作“气候”+mapNumber
我已经尝试了多种方法来实现这一点,目前我只是遇到了困难。谢谢你的帮助。谢谢:)您不能执行以下操作:
(mapNumber === "One" || "Three" || "Four")
因为这意味着:mapNumber==“一”
或者如果没有定义“一”
(这里显然不是这种情况,因为“一”
是一个字符串,所以它被定义了)mapNumber==“三”
并且如果没有定义“三”
(出于同样的原因,情况并非如此)mapNumber==“四”
。所以它只测试第一个条件:mapNumber==“One”
你必须做到:
(mapNumber === "One" || mapNumber === "Three" || mapNumber === "Four")
或
如果这解决了你的问题,你能证明答案是正确的,这样问题就可以结束了吗?
["One", "Three", "Four"].includes(mapNumber)