几小时前我发布了这个问题:Simplifying this JavaScript-switch
我得到的另一个问题是:如何从给定索引的数组中获取特定元素?我想在每个元素之前编写一个自定义消息,而不使用巨大的元素切换:
switch (lotUser | winnendLot) {
case lotUser === winnendLot[0]:
console.log("Je hebt " + naamArtikel[0] + " gewonnen");
break;
case lotUser === winnendLot[1]:
console.log("Je hebt " + naamArtikel[1] + " gewonnen");
break;
case lotUser === winnendLot[2]:
console.log("Je hebt " + naamArtikel[2] + " gewonnen");
break;
case lotUser === winnendLot[3]:
console.log("Je hebt " + naamArtikel[3] + " gewonnen");
break;
case lotUser === winnendLot[4]:
console.log("Je hebt " + naamArtikel[4] + " gewonnen");
break;
case lotUser === winnendLot[5]:
console.log("Je hebt " + naamArtikel[5] + " gewonnen");
break;
case lotUser === winnendLot[6]:
console.log("Je hebt " + naamArtikel[6] + " gewonnen");
break;
case lotUser === winnendLot[7]:
console.log("Je hebt " + naamArtikel[7] + " gewonnen");
break;
default:
console.log("You do not win!");
break;
}
是否可以在单个案例中提供数组索引为lotUser
的不同响应?也许我可以使用if / else。
答案 0 :(得分:1)
使用给你的the answer,你所要做的就是引用数组中元素的索引并使用它来显示相应的消息:
var winnedIndex = winnedLot.indexOf(lotUser);
if (winnedIndex !== -1) {
console.log("Je hebt " + naamArtikel[winnedIndex] + " gewonnen");
}
else {
console.log("You do not win!");
}
答案 1 :(得分:0)
看起来您可能对switch语句的使用存在误解。我建议你阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch无论如何,在任何情况下,开关似乎都不合适。您要做的是对数组中的每个元素执行检查,并在其为真时打印带有数组值的语句。在这种情况下,以下是首选方法。
for(var x=0; x<winnendLost.length; x++)
{
if(lotUser === winnendList[x])
console.log("Je hebt " + winnendList[x] + " gewonnen");
};