Рубрики
Без рубрики

Сканирование ввода пользователя и поиск ключевых слов

Оригинальный пост: Я пытаюсь загрузить файл JSON в качестве объекта JavaScript. Затем я преобразую … Tagged с помощью, JavaScript.

Я пытаюсь загрузить файл JSON в качестве объекта JavaScript. Затем я превращаю ключи в их собственный массив. Затем я пытаюсь искать через строку ввода пользователя, чтобы найти любые совпадения. Если совпадение найдено, я тогда хочу, чтобы это проверило, является ли значение этой ключом «следующим» и если да, то сделайте одну вещь. Если значение не «следующее», я хочу, чтобы оно сделало другое дело. Если ни один из ключей не соответствует ни одного из слов в строке ввода пользователя, я хочу, чтобы он отправил сообщение об ошибке. Эта последняя часть кажется проблемой. Когда пользователь набирает строку без ключевого слова, он иногда регистрирует сообщение об ошибке более одного раза. Я заметил, что это происходит, особенно когда загружается новый файл JSON. Вот ссылка туда, где я думаю, проблема. Я попробовал практически все, что я могу думать, но у каждого решения, кажется, такая же проблема Так что, может быть, я просто смотрю не в том месте. Если у вас есть какие -либо вопросы или вам нужно больше информации, пожалуйста, дайте мне знать.

У меня есть объект, который выглядит так:

var object = {"keyword": "next", "other word": "wrong", "test": "wrong"}

Он был загружен из файла JSON, доступ к серверу, используя API Fetch. Затем у меня есть ящик ввода, который, когда пользователь входит в один из трех ключей объекта, должен повторить его значение при вводе. Если в строке нет ключей, у пользователя есть ввод, он должен распечатать сообщение об ошибке. Если значение ключа «следующее», оно должно запустить функцию с именем loadlevel () для загрузки следующего уровня. Этот следующий уровень затем загружается так же, как и вышеупомянутый. Похоже, что у меня проблемы. Когда он загружает новый файл JSON, кажется, что и предыдущий объект, и новый объект все еще работают. Это заставляет его распечатать сообщение об ошибке, если новый ввод не соответствует обоим новым ключам. См. Пример ниже:

Настраивать:

//This is the first object loaded from the json file:
var object = {"keyword": "next", "other word": "wrong", "test": "wrong"}

Что должно произойти

Когда пользователь вводит следующие строки, он должен иметь соответствующие выходы:

"this is the other word" => "wrong"
"hello, world" => "error"
"this is the keyword" => "next" loadlevel()

Когда следующий уровень загружен, например, скажем, это:

var object = {"smith": "next", "hello": "wrong", "hi there": "wrong"}

Затем он должен вывести это:

"this is the other word" => "error"
"hello, world" => "wrong"
"this is smith" => "next" loadlevel()

Что происходит

Первые ценности, кажется, работают нормально:

"this is the other word" => "wrong"
"hello, world" => "error"
"this is the keyword" => "next" loadlevel()

Когда следующий уровень загружен, например, скажем, это:

var object = {"smith": "next", "hello": "wrong", "hi there": "wrong"}

Затем он выводит это:

"this is the other word" => "error" "error"
"hello, world" => "wrong" "error"
"this is smith" => "next" "error" loadlevel()

Оригинал: “https://dev.to/kevinuulong/scanning-user-input-and-looking-for-keywords-431f”