我有一段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 :(得分:1)
由于某些浏览器不支持,因此Javascript包含的函数可能会运行不正常。当mozilla可能具有某些浏览器不支持的某些功能时,你需要明智地选择javascript函数。 W3schools还提供了一个功能的浏览器支持列表。请查看以下链接以获取包含该功能的列表:
http://www.w3schools.com/jsref/jsref_includes.asp
或者,您可以使用indexOf函数,如:
myMap[key].toLowerCase().indexOf(city.toLowerCase()) >= 0
我自己遇到了包含功能的问题,因此为您提供了一种解决方法。快乐的节目。