У меня есть объект, который выглядит так: var object = {"keyword": "next", "other word": "wrong", "test": "wrong"}
. Я хочу взять ввод, который пользователь вводит в текстовое поле, и найти этот ввод для любого из ключей объектов. Если это совпадение, я также хочу проверить, является ли значение этого ключа «следующим». Если это так, я хочу, чтобы он мог запустить функцию. Если ключ совпадает, но значение не является «следующим», я хочу, чтобы он console.log
имел значение.
Вот код, который я сейчас использую:
var object = {"keyword": "next", "other word": "wrong", "test": "wrong"}
var match;
document.addEventListener('keyup', function(e){
var text = document.getElementById("input").value;
var options = Object.keys(object);
if (e.keyCode == 13){
if(options.some(function(element){
match = element;
return text.toString().indexOf(element) != -1;
})){
if (object[match].toString() == "next"){
console.log("next");
document.getElementById("input").value = "";
} else {
console.log(object[match]);
document.getElementById("input").value = "";
}
} else {
document.getElementById("input").value = "";
console.log("A valid keyword could not be found in your response: please try again!");
}
}
});
<input id='input' autofocus>
<div id="gamearea"></div>
Этот код работает нормально, пока я не изменю то, что данные объекта, в которых точка, набрав «другое слово», будут выводить не только «неправильно», но и «Действительный»Не удалось найти ключевое слово в вашем ответе: попробуйте еще раз! "Если вам это нужно, я могу опубликовать больше кода, но я старался не копировать / вставлять весь мой файл. Любые решения или даже просто указатели приветствуются.