gpt4 book ai didi

javascript - 尝试在对象中使用带有 if else 语句的 for 循环

转载 作者:行者123 更新时间:2023-12-01 04:04:51 25 4
gpt4 key购买 nike

我正在尝试编写一个函数来迭代保存对象的变量。如果你传入的名字是一个对象属性,你应该得到 true。如果没有,你应该弄错。然而,无论我通过函数传递什么,我总是得到错误。非常感谢任何帮助。

var contacts = [
{
"firstName": "Akira",
"lastName": "Laine",
"number": "0543236543",
"likes": ["Pizza", "Coding", "Brownie Points"]
},
{
"firstName": "Harry",
"lastName": "Potter",
"number": "0994372684",
"likes": ["Hogwarts", "Magic", "Hagrid"]
},
{
"firstName": "Sherlock",
"lastName": "Holmes",
"number": "0487345643",
"likes": ["Intriguing Cases", "Violin"]
},
{
"firstName": "Kristian",
"lastName": "Vos",
"number": "unknown",
"likes": ["Javascript", "Gaming", "Foxes"]
}
];


function attempt(firstName){
for(var i = 0;i < contacts.length; i++){
if(contacts[i].firstName==firstName){
return true;
} else {
return false;
}
}
}

最佳答案

思考一下逻辑:第一个循环会发生什么?该函数响应 if/else 执行什么操作?正确的!它立即返回truefalse,而不循环遍历剩余的条目。

您需要完全删除 else 并将 return false 移至循环外部:

function attempt(firstName) {
for (var i = 0; i < contacts.length; i++) {
if (contacts[i].firstName == firstName) {
return true;
}
}
return false;
}
<小时/>

旁注:Array#some正是针对此用例而设计的:

function attempt(firstName) {
return contacts.some(function(entry) {
return entry.firstName == firstName;
});
}

关于javascript - 尝试在对象中使用带有 if else 语句的 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41913027/

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