2013-10-24 173 views
-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。

+0

避免'|'除非您按位操作,否則使用'||'。你能提供更多的代碼嗎?看起來問題在別的地方。 – bjb568

+0

@Dude:我改變了|到||現在,它沒有什麼區別。 我不確定是否可以提供比這更多的代碼,這是作業,並提供代碼可能會有利於同學。 事情是,這個開關語句顯然沒有進入案件,但直奔默認情況下,所以它不評估情況爲真。 –

+0

我沒有說'||'會解決這個問題。我說這通常是個好主意。 – bjb568

回答

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!"); 
} 
+0

哦,哇,我沒有想到這個..謝謝!你真的幫助我:) –

+0

@JohannBehrens是不是問題如何處理開關?如果不是,那麼爲什麼這與http://stackoverflow.com/questions/19572388/simplifying-this-javascript-switch不同?這個問題很長,也不清楚。 – bjb568

+0

@Dude:我猜這個問題我錯了,你說的對。不同之處在於獲勝時的常見信息,這個問題是關於根據數組索引的特定消息。 –

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"); 
}; 
相關問題