2017-05-28 90 views
0

我有一個應該預測運行功能的條件。但它不會工作。「或」條件不起作用JavaScript

if ((event.keyCode !== 40) || (event.keyCode !== 38)) { 
     self.inputVal = input.value; 
     var result = pokemonNames.filter(function(pokemon) { 
      return pokemon.includes(self.inputVal.toLowerCase()); 
     }); 
     if (result.length > 5) { 
      result = result.filter(function(pokemon, index) { 
      return index < 5; 
      }); 
     } 
當我使用

只是event.keyCode !== 40它工作正常,但是當我使用(event.keyCode !== 40) || (event.keyCode !== 38)這是可行的。

+3

這是你的邏輯被打破了,它總會和兩個代碼中的一個不一樣。你的情況簡化爲「真實」。你或者想要'(k!= x)&&(k!= y)'或者(k == x)|| (k == y)'。 – Aaron

+0

你想要達到什麼目的? – VlassisFo

+0

使用&&代替|| – Morleee

回答

1

如果要執行,如果塊如果event.keyCode不是40或38,你想這個

((event.keyCode !== 40) && (event.keyCode !== 38)) 

如果想讓event.keyCode是40或38

執行代碼
((event.keyCode == 40) || (event.keyCode == 38)) 
+1

好的,如果你打算低估我的回答,至少告訴我爲什麼 –

0

正如Aaron在評論中指出的那樣,它總是會解決爲true。如果數字是40,第二個條件將是真實的(因爲它不是38),反之亦然。改爲使用&&,它會起作用。