Javascript 开关箱始终返回未定义状态
我试图创建一个切换案例,从事实/引号数组中返回随机引号 虽然switch case没有语法错误,但它总是给我未定义的消息Javascript 开关箱始终返回未定义状态,javascript,Javascript,我试图创建一个切换案例,从事实/引号数组中返回随机引号 虽然switch case没有语法错误,但它总是给我未定义的消息 let fact; const rand= Math.floor(Math.random() * 10); console.log(rand) switch(rand) { case 0: fact=facts[0] break; case 1: fact=facts[1] break; case 2: fact
let fact;
const rand= Math.floor(Math.random() * 10);
console.log(rand)
switch(rand) {
case 0:
fact=facts[0]
break;
case 1:
fact=facts[1]
break;
case 2:
fact= facts[2]
break;
case 3:
fact= facts[3]
break;
case 4:
fact= facts[4]
break;
case 5:
fact= facts[5]
break;
case 6:
fact=facts[6]
break;
case 7:
fact=facts[7]
break;
case 8:
fact= facts[8]
break;
default:
fact = "dino random fact";
}
在这里,我尝试将其记录到控制台:
tile.classList.add("grid-item");
tile.innerHTML=`<h3>${dinosaur.species}</h3>
<p> ${console.log(fact)} </p>
<img src="images/${dinosaur.species}.png">
`;
tile.classList.add(“网格项”);
tile.innerHTML=`${degoron.species}
${console.log(事实)}
`;
事实不存在,因此当您设置事实=事实[某物]
事实未定义您可以将随机值作为索引,并将默认值作为例外值
const
事实=['0','1','2','3','4','5','6','7','8']
rand=Math.floor(Math.random()*10),
事实=rand==9
? “恐龙随机事实”
:事实[兰特];
console.log(事实)
您是否有事实
数组?请不要使用此开关语句,只使用事实=事实[rand]
。最不容易出错的解决方案是常量事实=事实[Math.floor(Math.random()*facts.length)]
。如果您的目标只是从数组中选择一个随机元素,也就是说。是的,这是因为您试图访问数组中没有值的位置,这就是返回未定义的原因事实数组是从dom返回的,所以我没有包含它,我们可以使用一个更小的数组和虚拟数据来测试它们的存在,但我没有在帖子中包含它们谢谢,这真的很酷