2017-11-26 4 views
0

これはそれほど難しいとは思えませんが、それは私を狂わせてしまいます。フィルタ()をアラートスニペットと組み合せる

フィルタメソッドが文字列または空の文字列を残した後、どの文字が出てきたかを示す警告が欲しい。ここで

は、私が得ている最も近い:

function wordCheck(wordInput) { 
    var wordList = ["sad tissue","thirsty drink"]; 
    var wordResult = ""; 
    var wordInput = wordInput.toLowerCase().trim(); 
    var filtered = ""; 

    filtered = wordList.filter(function(val){ 
     return val == wordInput; 
    }); 
    wordResult = filtered.join(""); 
    return wordResult; 
} 

function wordAlert(filtered) { 
    if (filtered == "") { 
     alert("Try Again, Kiddo!"); 
    } else { 
     alert("Good job!"); 
    } 
} 

var filtered = wordCheck(); 

wordAlert(filtered); 

はあなたに@Nisargシャーと@Narenムラリありがとうございます。その入力は非常に役に立ちました。

私は非常に多くの助けを非常に得るために驚いた!

残念ながら、状況を十分に説明したとは思いません。

は、テキストボックスやチェックボタンと私のHTMLのフォームがあります:

<input id = "textbox" type = "text" name = "word_pair"><br> 
<input id = "button" type = "button" value = "Check This!" onclick = "wordCheck();"> 

学生はADJのリストを持っています。と名詞を一致させます。彼らは2つを選択し、それらを入力し、ボタンをクリックします。

wordCheck()は4つのことを行います。(1)単語がペアリスト&と一致することを確認します。(2)リストの単語を切り取ります。 (3)テキストボックスのvalue = ""セクションに単語をドロップし、単語に基づいて文章を書く。例えば。 "喉の渇いた水" - "彼は喉が渇いている。水を与えてください"(4)間違った答えが警告を発する( "もう一度やり直してください")

私は簡単なアラートの問題を解決できたら(私が現実的であることを願っています)

あなたの助けを借りて、コードはPythonTutor.comコードチェッカーではるかに遠くになりましたが、Google Chromeは私の.toLowerCaseを嫌っています、と言って:私はラインアウト)(.toLowerCaseコメント場合

Uncaught TypeError: Cannot read property 'toLowerCase' of undefined 

かを、アラートはほとんどランダムにオフに解雇

皆さんは確かにもっと遠くにいます。それは大きな助けとなりました。

元の破棄されたコードをやや良いコードに変更しました。

私はちょうどあなたが非常に思慮深かったので、私はあなたに徹底的な更新を与えるだろうと思った。

これでどこにいても、私はあなたに知らせます。

THX!

答えて

0

コードにはいくつかの問題があります。

  1. filteredwordCheck関数に対してローカルであるので、wordAlert内部にアクセスすることができません。
  2. これらの引用符は、Javascriptで認識されないため、誤った構文エラーが発生します。代わりに'または"を使用してください。

私はまた、明瞭度を改善するために、二つの文でreturn wordResult = filtered.join("");を置き換え、そして2つのif(filtered == '')if(filtered != '')との条件とif...elseを交換しました。

また、wordResult.length > 0をチェックして返された要素があるかどうかを確認できるので、最後にwordResult = filtered.join("");の必要はありません。しかし、私は今のところ下のスニペットにそれを残しました。

function wordCheck(wordInput) { 
 
    var wordList = ['sneeze bleshu','fart omg']; 
 
    var wordResult = ''; 
 
    var wordInput = wordInput.toLowerCase().trim(); 
 
    var filtered = ''; 
 

 
    filtered = wordList.filter(function(val){ 
 
     return val == wordInput; 
 
    }); 
 
    
 
    wordResult = filtered.join(""); 
 
    return wordResult; 
 
} 
 

 
function wordAlert(filtered) { 
 
    if (filtered == '') { 
 
     alert('Try Again, Kiddo!'); 
 
    } else { 
 
     alert('Good job!'); 
 
    } 
 
} 
 

 
var result = wordCheck('sneeze bleshu'); 
 
wordAlert(result);

+0

ありがとう!私は、元の投稿、FYIのいくつかを明確にした。 –

0

あなたのコードは罰金だ、彼らは無効な文字に見えるので、私は引用符“”を交換してください。

コード内の問題は、変数filteredが関数内で定義されているため、他の関数では表示されず、関数の外で定義してすべての関数に表示されるようにしてください。

これで問題が解決した場合はお知らせください。あなたの助けのための

var filtered = ""; 
 
function wordCheck(wordInput) { 
 
    var wordList = ["sneeze bleshu","fart omg"]; 
 
    var wordResult = ""; 
 
    var wordInput = wordInput.toLowerCase().trim(); 
 

 
    filtered = wordList.filter(function(val){ 
 
     return val == wordInput; 
 
    }); 
 
    return wordResult = filtered.join(""); 
 
} 
 

 
function wordAlert() { 
 
    if (filtered == "") { 
 
     alert("Try Again, Kiddo!"); 
 
    } 
 
    if (filtered !== "") { 
 
     alert("Good job!"); 
 
    } 
 
} 
 

 
wordCheck("sneeze bleshu"); 
 

 
wordAlert();

+0

ありがとうございます!私は、上記の元の記事の中でいくつかのことを説明しました。 –

関連する問題