Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/422.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 访问数组元素任务_Javascript - Fatal编程技术网

Javascript 访问数组元素任务

Javascript 访问数组元素任务,javascript,Javascript,我的任务是: 已经为您预先编写了一个lookUpProfile函数,该函数以名称和属性属性属性作为参数 函数应该检查name是否是实际联系人的名字,并且给定的属性prop是否是该联系人的属性 如果两者都为true,则返回该属性的值 如果姓名与任何联系人不对应,则不返回此类联系人 如果prop与找到的与name匹配的联系人的任何有效属性都不对应,则不返回此类属性 第3、4段执行得很好,请告诉我为什么我的第1、2段不起作用 代码如下: //Setup var contacts = [

我的任务是:

已经为您预先编写了一个lookUpProfile函数,该函数以名称和属性属性属性作为参数

函数应该检查name是否是实际联系人的名字,并且给定的属性prop是否是该联系人的属性

如果两者都为true,则返回该属性的值

如果姓名与任何联系人不对应,则不返回此类联系人

如果prop与找到的与name匹配的联系人的任何有效属性都不对应,则不返回此类属性

第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");

您的代码中有两个问题:

无论是否匹配,它总是在第一次接触后返回 它将字符串prop“likes”与某个数组的值进行比较,这永远不会是真的。 x


也许问题在于,如果你说它不起作用,那就没用了。你需要解释发生了什么以及你期望发生什么:克里斯蒂安,lastName应该返回Vos/Sherlock,likes应该返回[有趣的案例,小提琴]但是没有返回错误的值,返回正确的变体:没有这样的属性或没有这样的联系
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";
}