5.5 KiB
5.5 KiB
title | localeTitle |
---|---|
Profile Lookup | 个人资料查询 |
如果卡住,请记得使用**Read-Search-Ask
** 。尝试配对程序并编写自己的代码
问题说明:
我们的联系人列表中有一组代表不同人的对象。
已经为您预先编写了一个lookUpProfile()
函数,它将firstName和一个属性( prop )作为参数。
该函数应检查firstName是否是实际联系人的firstName ,并且给定属性( prop )是该联系人的属性。
如果两者都为真,则返回该属性的_值_ 。
如果firstName与任何联系人不对应,则返回No such contact
。
如果prop不对应任何有效属性,则返回No such property
。
- 更改下面的代码
// Only change code below this line
,最多为// Only change code above this line
。 - 确保您正在编辑
lookUpProfile()
函数的内部。- 该函数包括两个参数, firstName和prop 。
- 该函数应查看给定firstName参数的联系人列表。
- 如果找到匹配项,则该函数应查找给定的prop参数。
- 如果找到firstName和关联的prop ,则应返回prop的值。
- 如果找到firstName且未找到任何关联的prop ,则应返回
No such property
。
- 如果在任何地方都找不到firstName ,则应返回
No such contact
。
相关链接
提示:1
使用for
循环在联系人列表中循环。
现在尝试解决问题
提示:2
使用嵌套的if
首先检查语句是否匹配**的firstName,**然后检查if
道具匹配。
现在尝试解决问题
提示:3
将你的return "No such contact"
留在for
循环中作为最后的全部。
现在尝试解决问题
扰流警报!
提前解决!
基本代码解决方案
for (var x = 0; x < contacts.length; x++){
if (contacts[x].firstName === name) {
if (contacts[x].hasOwnProperty(prop)) {
return contacts[x][prop];
} else {
return "No such property";
}
}
}
return "No such contact";
代码说明:
for
循环运行,从联系人列表中的第一个对象开始。- 如果传递给函数的firstName参数与第一个对象中的
"firstName"
键的值匹配,则if
语句将传递。 - 然后,我们使用
.hasOwnProperty()
方法(检查是否存在给定属性并返回布尔值),并将prop作为参数。如果是,则返回prop的值。- 如果第二个
if
语句失败,No such property
返回No such property
。
- 如果第二个
- 如果第一个
if
语句失败,for
循环将继续到联系人列表中的下一个对象。 - 如果firstName参数与最终联系人对象不匹配,则
for
循环退出并且No such contact
返回No such contact
。
示例运行
lookUpProfile("Akira","likes");
运行。"Akira"
与第一个对象中的"firstName"
键匹配,因此if
语句返回true。- 在第一个对象中找到
"likes"
,因此第二个if
语句返回true。 - 值
"likes"
返回-"Pizza", "Coding", "Brownie Points"
。
捐款说明:
- 请勿添加与任何现有解决方案类似的解决方案。如果您认为它**相似但更好** ,那么尝试合并(或替换)现有的类似解决方案。
- 添加解决方案的说明。
- 将解决方案分为以下类别之一 - 基本 , 中级和高级 。
- 如果您添加了任何**相关的主要内容,**请仅添加您的用户名。 ( 不要 删除任何现有的用户名 )