-1

几个小时前我发布了这个问题: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。

4

2 回答 2

1

使用给你的答案,你所要做的就是引用数组中元素的索引并使用它来显示适当的消息:

var winnedIndex = winnedLot.indexOf(lotUser);
if (winnedIndex !== -1) {
  console.log("Je hebt " + naamArtikel[winnedIndex] + " gewonnen");
}
else {
  console.log("You do not win!");
}
于 2013-10-24T19:55:53.033 回答
0

看来您可能对 switch 语句的用法有误解。我建议您阅读https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/switch 在任何情况下,开关似乎都不适合您的情况。您要做的是对数组中的每个元素执行检查,并在数组值为 true 时打印一条语句。在这种情况下,以下将是首选方法。

for(var x=0; x<winnendLost.length; x++)
{
  if(lotUser === winnendList[x])
    console.log("Je hebt " + winnendList[x] + " gewonnen");
};
于 2013-10-24T19:56:21.100 回答