2016-09-28 10 views
2

(私はJavaScriptにはあまり新しく、これを使って試してみることに慣れていますが、これはユーザー名とパスワードを格納するためにオブジェクトを使用している理由です。これを見習いの一部として学習していますが、これは私自身の時間の中でJSについての私の知識を向上させるためです) 私はユーザーにユーザー名を入力する必要がある小さなコードを書こうとしましたが、オブジェクト "userNames"のプロパティ名。ユーザーはこのユーザーのパスワードを入力するように求められ、正しいユーザー名で対応するプロパティの値として設定されたパスワードと照合されます。 問題の一部は、「の入力パスワード」(方法としてパスワードのユーザー入力に設定)の変数「userNames」を使用しようとしているかのように感じられます。 3回の試行後にユーザー名またはパスワードが間違っている場合は、ウィンドウを閉じたいと思います。 私のテキストエディタは、Ifステートメントにブランチがないと言っていますが、これが影響するかどうかは分かりません。/ElseステートメントがWhileループ内でネストされている場合

var userNames = {Tom:"PassW0rd", Bill:"Apples40C0lander", Ryan:"M1911p4ck4ge"}; 
 
var Greeting = "Insert Username:"; 
 

 
var i = 0; 
 
while (i < 3) 
 
{ 
 
    var enteredUserName = prompt(Greeting); 
 
    var enteredPassword = prompt("enter password for " + enteredUserName); 
 

 
    if ((userNames.hasOwnProperty(enteredUserName)) && (userNames.enteredUserName==enteredPassword)) { 
 
     alert("Welcome"); 
 
     break; 
 
    } else { 
 
     alert("incorrect Username or Password"); 
 
     alert(""); 
 
     window.open('', '_self', ''); window.close(); 
 
     window.open('', '_self', ''); window.close(); 
 
     i++ 
 
    }}

+1

'if'文 –

+0

あなたは私をインクリメントしていない後にセミコロンを削除し、私は3が常に真である<とあなたがレコード生成されています無限ループを実行する – StackOverMySoul

+0

'if-statement 'の後に'セミコロン 'があるため、コードはコンパイルされません。セミコロンは 'if'全体を閉じますので、' else'はそれに属しません - >構文エラーです。 1つのコマンドで 'if'の' short-writing 'と解釈されます。構文は次のとおりです: 'if(expression)command;'。 1つのコマンドしか使用しない場合、 '{'と '}'は必要ありません。他のものが一つもない ';'は '空のコマンド 'と解釈されるので、' if(expression); '' if'を完了します。 – Zabuza

答えて

0

簡単な変更は、ここで十分です: userNames[enteredUserName]
JavaScriptでは、Objectarrayのようにアクセスできます。あなたがuserNames.enteredUserNameを使用している場合
することは、それはすなわち、enteredUserNameStringとみなされます。しかし、あなたがuserNames[enteredUserName]としてそれを使用する場合は、enteredUserNameObjectに変数と指標と見なされます({enteredUserName:somevalue}をチェックします。
スニペットの下に試してみてください。

var userNames = {Tom:"PassW0rd", Bill:"Apples40C0lander", Ryan:"M1911p4ck4ge"}; 
 
var Greeting = "Insert Username:"; 
 

 
var i = 0; 
 
while (i < 3) 
 
{ 
 
    var enteredUserName = prompt(Greeting); 
 
    var enteredPassword = prompt("enter password for " + enteredUserName); 
 

 
    if ((userNames.hasOwnProperty(enteredUserName)) && (userNames[enteredUserName]==enteredPassword)) { 
 
     alert("Welcome"); 
 
     break; 
 
    } else { 
 
     alert("incorrect Username or Password"); 
 
     alert(""); 
 
     window.open('', '_self', ''); window.close(); 
 
     window.open('', '_self', ''); window.close(); 
 
     i++ 
 
    }}

関連する問題