freeCodeCamp/guide/chinese/certifications/javascript-algorithms-and-d.../basic-javascript/profile-lookup/index.md

5.5 KiB
Raw Blame History

title localeTitle
Profile Lookup 个人资料查询

:triangular_flag_on_post:如果卡住,请记得使用**Read-Search-Ask** 。尝试配对程序:busts_in_silhouette:并编写自己的代码:pencil:

:checkered_flag:问题说明:

我们的联系人列表中有一组代表不同人的对象。

已经为您预先编写了一个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()函数的内部。
    • 该函数包括两个参数, firstNameprop
  • 该函数应查看给定firstName参数的联系人列表。
    • 如果找到匹配项,则该函数应查找给定的prop参数。
    • 如果找到firstName和关联的prop ,则应返回prop的值。
    • 如果找到firstName且未找到任何关联的prop ,则应返回No such property
  • 如果在任何地方都找不到firstName ,则应返回No such contact

相关链接

:speech_balloon:提示1

使用for循环在联系人列表中循环。

现在尝试解决问题

:speech_balloon:提示2

使用嵌套的if首先检查语句是否匹配**的firstName**然后检查if 道具匹配。

现在尝试解决问题

:speech_balloon:提示3

将你的return "No such contact"留在for循环中作为最后的全部。

现在尝试解决问题

扰流警报!

警告牌

提前解决!

:beginner:基本代码解决方案

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"

:clipboard:捐款说明:

  • :warning: 请勿添加与任何现有解决方案类似的解决方案。如果您认为它**相似但更好** ,那么尝试合并(或替换)现有的类似解决方案。
  • 添加解决方案的说明。
  • 将解决方案分为以下类别之一 - 基本 中级高级:traffic_light:
  • 如果您添加了任何**相关的主要内容,**请仅添加您的用户名。 :warning: 不要 删除任何现有的用户名

看到:point_right: **Wiki Challenge Solution Template**供参考。