[英]Same code, same browser, different behavior for users
我有一段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示例等同于良好的教学。
由于某些浏览器不支持Javascript包含功能,因此可能无法正常工作。 在选择javascript函数时,尤其是在mozilla可能具有某些浏览器不支持的函数时,您需要明智地选择。 W3schools还提供了对功能的浏览器支持的列表。 在下面的链接中查看包含功能的列表:
http://www.w3schools.com/jsref/jsref_includes.asp
另外,您可以使用indexOf函数,例如:
myMap[key].toLowerCase().indexOf(city.toLowerCase()) >= 0
我自己遇到了包含功能的问题,因此为您提供了一种解决方法。 编程愉快。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.