我在解决一个难题这是作业
在联系人列表中,我们有一个代表不同人的对象数组。
已经为您预先编写了一个lookUpProfile函数,它以firstName和一个属性(prop)作为参数。
该函数应该检查firstName是否是实际联系人的firstName,并且给定的属性(prop)是否是该联系人的属性。
如果两者都为真,则返回该属性的“值”。
如果firstName不对应于任何联系人,则返回“No such contact”
如果prop不对应于任何有效属性,则返回“No such property”
我的尝试
//Setup
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 lookUpProfile(firstName, prop){
// Only change code below this line
for(var i =0;i<contacts.length;i++){
if (contacts[i].firstName===firstName && contacts[i].hasOwnProperty(prop)===true){
return contacts[i][prop];
}
else if (contacts[i].firstName===undefined){
return "No such contact";
}
else if (contacts[i].hasOwnProperty===false){
return "No such property";
}
}
// Only change code above this line
}
// Change these values to test your function
lookUpProfile("Akira", "likes");
如果我在lookUpProfile函数中输入不存在的值,它将返回undefined
例如lookUpProfile(“Donald”,“likes”);
〈.未定义
请帮助我解决这个问题。您也可以在this gist上发表评论
谢谢
6条答案
按热度按时间toiithl61#
你在循环中的第一个条件应该检查name是否相等。如果它满足,那么你应该检查属性是否存在。如果它存在,则返回值else返回
no such property
。如果没有找到这样的名字,那么它将退出循环,你可以返回no such contact
。q8l4jmvw2#
你可以像这样简单地解决它:
esyap4oy3#
尝试以下代码:
ekqde3dh4#
另一种方法是使用OR运算符。然后,只需要一个“if语句”:
这里,OR运算符的第二部分作为“else”语句工作。
mo49yndu5#
我自己在FreeCodeCamp的 *Javascript算法和数据结构 * 配置文件查找问题上遇到了这个问题,上面的答案似乎有些过时了。
下面是我如何修复的:
kuarbcqp6#
我在FreeCodeCamp的Javascript算法和数据结构配置文件查找中遇到了这个问题。