2017-04-15 177 views
1
client.on('chat', function(channel, userstate, message, self){ 



    switch(message){ 
    case message.includes(emotes[0]): 
     numberOfEmotes[0]++; 
     console.log("Emote0 has been used " + numberOfEmotes[0] + " time(s)"); 
     break; 
    case message.includes(emotes[1]): 
     numberOfEmotes[1]++; 
     console.log("Emote1 has been used " + numberOfEmotes[1] + " time(s)"); 
     break; 
    case message.includes(emotes[2]): 
     numberOfEmotes[2]++; 
     console.log("Emote2 has been used " + numberOfEmotes[2] + " time(s)"); 
     break; 
    case message.includes(emotes[3]): 
     numberOfEmotes[3]++; 
     console.log("Emote3 has been used " + numberOfEmotes[3] + " time(s)"); 
     break; 
    } 

/* if(message.includes(emotes[0])){ 
    numberOfEmotes[0]++; 
    console.log("Emote0 has been used " + numberOfEmotes[0] + " time(s)"); 
    }*/ 


    //console.log("** " + message + " **"); 
}); 

當函數chat.on被稱爲消息的變量用字符串應該通過開關語句來運行,我有不同的字符串,並且如果陣列消息包含該數組中的一個字符串,運行該案例。但沒有任何反應,這一切似乎正確,這可能是錯誤的?switch語句

+1

文檔閱讀'之開關更加緊密。 – 2017-04-15 07:38:13

回答

1

交換機無法按照您的預期工作。它將交換機中寫入的值與案例塊中的每個進行比較。所以在你的情況下,它會比較true/false與值的消息,它不會找到相同的值,因此不會發生任何事情。 你如果使用else語句或解析消息並排除像 消息「型/ emote1」的值 提取一切AFTE斜線,並把它在開關

+0

我基本上想檢查字符串message,如果包含'emote [0]'的字符串'mesage',運行case語句。我使用switch語句,因爲我必須這樣做大約50次,目前我只有4個,但是我知道它可以工作後我將加入46個。 – Hooga