2016-09-11 12 views
8

ファイルを解析し、配列にキーと値のペアマップを関連付けた後、それを反復して正しい都市名を検索するJSコードがあります.includesメソッドを使用します。私の問題は、最終的なフィールド(問題の関数が呼び出される場所)がChromeとFirefoxの両方でうまく動作することです。私のグループメンバーのために何らかの理由で動作しません。同じコード、同じブラウザ、ユーザーの異なる動作

これは、反復処理を行いJSスニペットです:

編集:

var rawFile = new XMLHttpRequest(); 
    rawFile.open("GET", "../data/myFile.txt", false); 

for (var i = 0; i < allText.length; i++) { 
    if (i % 2 == 0) { 
    myMap[allText[i]] = allText[i + 1]; 
    } 
} 

var city = document.getElementById("city").value; 
for (var key in myMap) { 
    if (myMap.hasOwnProperty(key)) { 
    if (myMap[key].toLowerCase().includes(city.toLowerCase())) { 
     document.getElementById("city").value = myMap[key] 
     document.getElementById("zipcode").value = key; 
    } 
    } 
} 

これはそれを呼び出すHTML部分である:これは、ファイルが開かれている方法です:

<label for="myLabel">City: </label> 
<input type="text" name="myLabel" id="myLabel" onblur="readTextFile()"> 

問題はどのようにして問題を解決することができますか?JavaやC++の世界から来て、今まで私がこのような問題に直面したことのない、私には分かりません。なぜJSがちょっと醜いのだろうと思っているのであれば、W3Schoolsの例を示すことは良い教えと同じであると思う教師の生徒の結果です。

+0

クロムを使用してコードをステップ実行し、ソースタブ(f12)に移動して問題の行にブレークポイントを設定しますか? – saj

+0

それは私のためにうまくいくので、それは問題ではありません。彼らはそれを試すことができると思う。 – SomeStudent

+3

問題がないかどうか質問する理由 – saj

答えて

1

Javascript includes機能は、一部のブラウザでサポートされていないために不安定に動作することがあります。 Mozillaにいくつかのブラウザではサポートされていない機能がある場合には、javascript関数を特別に選択すると賢明にする必要があります。 W3schoolsは、関数のブラウザサポートのリストも提供します。機能が含まれてためにそのリストについては、以下のリンクをチェックしてください:

http://www.w3schools.com/jsref/jsref_includes.asp

はまた、あなたは次のようindexOfの機能を使用することができます。

 myMap[key].toLowerCase().indexOf(city.toLowerCase()) >= 0 

ので、あなたに回避策を提供する機能が含まれて、私は自分自身に直面している問題を抱えています。ハッピープログラミング。

+0

はそれを撃つでしょう。 – SomeStudent

関連する問題