2016-09-11 3 views
8

Ich habe ein Stück JS-Code, der eine Datei durchsucht, das Array dann mit einer Schlüssel-Wert-Paar-Zuordnung verknüpft und dann durchläuft, um den richtigen Städtenamen zu finden mit einer .includes-Methode. Mein Problem ist, dass das letzte Feld (wo die betreffende Funktion aufgerufen wird) an meinem Ende für Chrome und Firefox gut funktioniert. Es funktioniert aus irgendeinem Grund nicht für meine Gruppenmitglieder.Gleicher Code, gleicher Browser, anderes Verhalten für Benutzer

Dies ist der JS-Schnipsel, die das Iterieren tut:

Edit: das ist, wie die Datei geöffnet wird:

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

Dies ist der HTML-Teil, der es nennt
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; 
    } 
    } 
} 

:

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

Was genau ich s das Problem und wie kann ich es beheben, da es für mich keinen Sinn macht, aus der Welt von Java und C++, wo ich noch nie zuvor ein solches Problem konfrontiert hatte. Wenn Sie sich wundern, warum die JS ein bisschen hässlich sein könnte, ist es das Ergebnis eines Schülers mit einem Lehrer, der denkt, dass das Zeigen von W3Schools-Beispielen dem guten Lehren entspricht.

+0

Verwenden Sie chrome und gehen Sie durch den Code, gehen Sie zum Quellen-Tab (f12) und setzen Sie einen Breakpoint auf Ihre Problem-Zeile? – saj

+0

gut für mich ist es egal, wie es an meinem Ende funktioniert. Ich schätze, sie können es versuchen. – SomeStudent

+3

Warum stellen Sie die Frage, ob es gleichgültig ist – saj

Antwort

1

Javascript enthält Funktion kann fehlerhaft arbeiten, da einige Browser es nicht unterstützen. Sie müssen bei der Auswahl der Javascript-Funktionen besonders weise sein, wenn Mozilla einige Funktionen hat, die in einigen Browsern nicht unterstützt werden. W3schools bietet auch eine Liste der Browser-Unterstützung für eine Funktion. Überprüfen Sie den Link unten für diese Liste für die Funktion enthält:

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

Alternativ können Sie indexOf Funktion wie:

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

ich mich konfrontiert Probleme haben mit der Funktion enthält daher Sie eine Abhilfe bieten. Fröhliche Programmierung.

+0

wird es eine Chance geben. – SomeStudent

Verwandte Themen