【问题标题】:Not work indexOf() for array that is from ajax text file data不适用于来自 ajax 文本文件数据的数组的 indexOf()
【发布时间】:2018-10-05 06:35:36
【问题描述】:
jQuery 版本 1.4.4
aaa.txt
仅包括 3 行
01000
01001
01139
$.ajax({
url: "aaa.txt",
success: function(result){
console.log(result);
var rArr = result.split("\n");
var ee = rArr.indexOf("01001");
console.log(ee);
}
});
return -1.
我猜它应该返回1。所有类型都是字符串。
我不明白为什么会发生这种情况。
【问题讨论】:
标签:
javascript
jquery
ajax
split
indexof
【解决方案1】:
var rArr = result.split(" ");// in this line you are spliting
var ee = rArr.indexOf("01001");// so if it is array you can not use indexOf it will work on sring.
var ee = rArr[index].indexOf("01001");//index should be according to your need
【解决方案2】:
你应该检查你的文件,看看它实际上使用了哪个换行符。例如,如果您的文件是由 Windows 记事本编写的,则它使用\r\n,因此您的.split() 产生["01000\r","01001\r","01139"],因此.indexOf() 返回-1,作为"01001"!=="01001\r"。
【解决方案3】:
我必须查看您问题的源代码才能确定这一点,但您输入数据的每一行都以空格结尾。
"01001 " !== "01001"
您需要:
- 从输入文件中删除空格
- 在测试中匹配它
- 从数组的每个成员(使用map)中删除它(使用trim)。