我正在處理這個簡單的搜索功能,該功能可以在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」。但是,即使「Lui」不存在,我的程序仍會說「找到」。希望有人能告訴我我做錯了什麼。先謝謝你。
'nombre' vs'name'。 – Siguza
@Siguza我只是更新,但仍然不起作用 – progx
還有'break'一旦找到,或者你會保持匹配。 – Siguza