indexOf проблемы с массивом при загрузке списка из файла .txt - PullRequest
0 голосов
/ 20 февраля 2020

Я работаю над довольно простым веб-приложением, которое принимает пользовательский ввод в виде числа или слова. Основой для этого является то, что мне нужно найти слово в массиве, если я начну с номера и / или порядкового номера слова, если я начну со слова. Я создал функцию, которая может сделать оба. Единственная загвоздка в том, что если я не напечатал список вручную, например let generic_list = ["Item1", "Item2", "Item3"];, индекс не будет найден при попытке загрузить его из текстового файла.

Код, который я использую для загрузки Текстовый файл:

$.get("list.txt", function(data) {
    let list_loaded = data.split("\n");
})

Это код, который я использую для поиска индекса, который работает, если я вручную создаю список.

let item_index = list_loaded.indexOf(item_index_im_searching_for);

Когда я создаю список вручную возвращаемое значение будет правильным индексом. Если текстовый файл загружает список, значение вернет -1 неопределенное. Я немного перечитал, но я не совсем уверен, чего мне не хватает. Надеюсь, что некоторые из вас JavaScript ветеринары могут привести меня в правильном направлении.

Кроме того, при тестировании в консоли оба списка выглядят совершенно одинаково.

1 Ответ

0 голосов
/ 20 февраля 2020

Проверьте JSFiddle для деталей, связанных с javascript indexOf метод: https://jsfiddle.net/ecx8Lhtj/

var str = "Hello world, welcome to the universe.";
var n = str.indexOf("welcome");
var htmlText = "<p>Finding position of the first occurrence for word welcome from string is at "+ n +"</p>";

str = str.split(" ");
htmlText += "<p>Array Elements="+ str +"</p>";
htmlText += "<p>Also check CONSOLE for seeing array elements.</p>";
console.log(str);
n = str.indexOf("welcome");
htmlText += "<p>a. Finding position of the first occurrence for word welcome from array elements is at "+ n +"</p>";

n = str.indexOf("world");
htmlText += '<p>b. Finding position of the first occurrence for word welcome from array elements is at "world" '+ n +'</p>';

n = str.indexOf("world,");
htmlText += '<p>b. Finding position of the first occurrence for word welcome from array elements is at "world," '+ n +'</p>';

document.getElementById("displayText").innerHTML = htmlText;
<p>JavaScript String indexOf() Method, reference URL: https://www.w3schools.com/jsref/jsref_indexof.asp</p>
<p><h3>Definition and Usage</h3></p>
<p>The indexOf() method returns the position of the first occurrence of a specified value in a string.</p>
<p>This method returns -1 if the value to search for never occurs.</p>
<p><b>Note</b>: The indexOf() method is case sensitive.</p>
<p>Whenever indexOf used with array elements, it will try to find searching text as a complete text against each element from an array. If such match found then only it will return an index otherwise it will return -1.</p>
<p>Please see below examples:</p>
<p id="displayText"></p>

Всякий раз, когда мы используем javascript метод indexOf для массива, он будет пытаться найти строку поиска как точное совпадение с каждым элементом массива , И если точное совпадение найдено, только оно вернёт правильное значение индекса, иначе вернет -1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...