2015-11-07 71 views
1

我在教自己的JavaScript,我想編寫一個簡單的程序來檢查用戶輸入是否在預先存在的數組中。檢查與JavaScript中的數組的變量匹配

示例代碼:

var options = ['rock','paper','scissors']; 
var choice = 'scissors'; 



var i; 

    for (i=0;i<options.length;i++){ 
     if (choice === options[i]){ 
      console.log('match'); 
     } 

    } 

我試圖添加別的,這將提示用戶輸入一個新的輸入,但是它通過不把數組對象每次運行for循環的時間去匹配輸入。

我的最終目標是讓這個小程序在檢測到它們的輸入不匹配任何數組對象時提示用戶輸入一次新的輸入。

+2

'options.indexOf(choice)> = 0' –

回答

1

您可以檢查,如果數組包含的項目沒有環使用indexOf方法搜索指定項目的陣列,並返回其位置,並返回-1,如果找不到項目,如:

var options = ['rock','paper','scissors']; 
var choice = 'scissors'; 

//If the input does not match any of the array objects prompt the user for a new input 
if (options.indexOf(choice) == -1) 
{ 
    prompt("Enter new input"); 
} 

希望這會有所幫助。

2

除了使用for循環外,您還可以使用if語句。

var options = ['rock', 'paper', 'scissors']; 
var choice = 'scissors'; 

if(options.indexOf(choice) !== -1) { 
    console.log('match'); 
} 

Array.indexOf()方法在數組中搜索一個值,如果它不在數組中,則返回-1。

所以你可以做相反的事情,看看是否沒有匹配。

if(options.indexOf(choice) === -1) { 
    console.log('no match'); 
} 
相關問題