Не работает indexOf () для массива из данных текстового файла ajax - PullRequest
0 голосов
/ 05 октября 2018

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. Все типы являются строкой.

Я не могу понять, почему происходит такая ситуация.

Ответы [ 3 ]

0 голосов
/ 05 октября 2018
   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
0 голосов
/ 05 октября 2018

Вы должны проверить свой файл и убедиться, что он на самом деле использует перевод строки.Например, если ваш файл записан в Блокноте Windows, то он использует \r\n, поэтому ваш .split() дает ["01000\r","01001\r","01139"], поэтому .indexOf() возвращает -1, как "01001"!=="01001\r".

0 голосов
/ 05 октября 2018

Мне пришлось посмотреть исходный код вашего вопроса, чтобы определить это, но вы заканчиваете каждую строку входных данных пробелом.

"01001 " !== "01001"

Вам необходимо либо:

  • Удалите пробел из входного файла
  • Сопоставьте его в тесте
  • Удалите его (с trim ) из каждого члена массива (с * 1013)* карта ).
...