首页 > 解决方案 > 访问数组元素任务

问题描述

这是我的任务:

已经为您预先编写了一个将名称和属性 (prop) 作为参数的lookUpProfile 函数。

  1. 该函数应该检查 name 是否是实际联系人的 firstName,并且给定的属性 (prop) 是该联系人的属性。

  2. 如果两者都为真,则返回该属性的“值”。

  3. 如果姓名与任何联系人不对应,则返回“No such contact”

  4. 如果 prop 不对应于找到匹配名称的联系人的任何有效属性,则返回“No such property”

第 3,4 段执行得很好,请告诉我为什么我的第 1,2 段不起作用。

这是代码:

    //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(name, prop){
    // Only change code below this line
    for (var i = 0; i < contacts.length; i++) {
      if (name === contacts[i].firstName) {
        if (prop === contacts[i][prop]) {
          return contacts[i][prop];
        } else {
          return "No such property";
        }
      } else {
        return "No such contact";
      }
    }
    // Only change code above this line
    }






    }
    // Change these values to test 

your function
lookUpProfile("Akira", "likes");

标签: javascript

解决方案


您的代码中有两个问题:

  1. 它总是在第一次接触后返回,不管它是否匹配
  2. 它将字符串 prop ( 'likes') 与值(某个数组)进行比较,这永远不会是真的。

X

function lookUpProfile(name, prop) {
    for (var i = 0; i < contacts.length; i++) {
        if (name === contacts[i].firstName) {
            if (contacts[i][prop]) {
                return contacts[i][prop];
            } else {
                return "No such property";
            }
        }
    }
    return "No such contact";
}

推荐阅读