如何从数组中获取元素。

时间:2013-10-24 19:41:38

标签: javascript switch-statement

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

2 个答案:

答案 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");
};