Я работаю над этой простой функцией поиска, которая находит человека в объекте JSON. Вот мой код:Как получить правильное значение от JSON?
var personas = [
{
"name": "Luis",
"lastname": "Gomez",
"age": 25
},
{
"name": "Maria",
"lastname": "Lopez",
"age": 20
},
{
"name": "Lucero",
"lastname": "Perez",
"age": 30
},
{
"name": "Daniel",
"lastname": "Ruiz",
"age": 18
},
{
"name": "Teresa",
"lastname": "Ponce",
"age": 23
}
];
function myFunction(userInput){
if (userInput.length == 0) {
document.getElementById("info").innerHTML = "";
}else{
for(var i in personas){
if(personas[i].name === userInput){
document.getElementById("info").innerHTML = "Found";
}else{
document.getElementById("info").innerHTML = "Not Found";
}
}
}
}
<form >
Find person: <input type = "text" onkeyup="myFunction(this.value)"/>
</form>
<div id = "info"></div>
Мой вопрос: По какой-то причине, если я удалю еще заявление:
else{
document.getElementById("info").innerHTML = "Not Found";
}
Моя программа сможет найти имя человека. Но скажем, я набираю «Luis», а затем удаляю «s», в последней строке будет сказано «Lui». Однако моя программа все равно скажет «Найденный», хотя «Луи» не существует. Надеюсь, кто-то может сказать мне, что я делаю неправильно. Заранее спасибо.
'nombre' vs' name'. – Siguza
@Siguza Я просто обновляю, но все еще не работаю – progx
Также «ломается» когда-то найденный, или вы собираетесь поддерживать соответствие. – Siguza