Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图为特定场景建立一个随机变量,但结果似乎忽略了;如果;陈述_Javascript_Variables_Key - Fatal编程技术网

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)