gpt4 book ai didi

javascript - 如何从 JSON 中获取正确的值?

转载 作者:行者123 更新时间:2023-11-29 21:12:31 25 4
gpt4 key购买 nike

我正在研究这个简单的搜索功能,它可以在 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 语句:

else{
document.getElementById("info").innerHTML = "Not Found";
}

我的程序将能够找到此人的姓名。但假设我输入“Luis”,然后删除“s”,最后的字符串将显示为“Lui”。但是,即使“Lui”不存在,我的程序仍会说“已找到”。希望有人能告诉我我做错了什么。在此先感谢您。

最佳答案

您可以使用 find方法:

function myFunction(userInput){

if (userInput.length == 0) {
document.getElementById("info").innerHTML = "";
}else{
var persona = personas.find(function(persona) {
return persona.name === userInput;
})

if (persona) {
document.getElementById("info").innerHTML = "Found";
} else {
document.getElementById("info").innerHTML = "Not Found";
}
}
}

问题:如果删除 else 语句,当找不到名称时,UI 将不会更新。

关于javascript - 如何从 JSON 中获取正确的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41090042/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com