算法 | Profile Lookup

Profile Lookup

题目:
https://www.freecodecamp.cn/challenges/profile-lookup

我们有一个对象数组,里面存储着通讯录。
函数 lookUp 有两个预定义参数:firstName值和prop属性 。
函数将会检查通讯录中是否存在一个与传入的 firstName 相同的联系人。如果存在,那么还需要检查对应的联系人中是否存在 prop属性。
如果它们都存在,函数返回prop属性对应的值。
如果firstName 值不存在,返回 "No such contact"。
如果prop 属性不存在,返回 "No such property"。

//初始化变量
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 lookUp(firstName, prop){
// 请把你的代码写在这条注释以下
var i; // 用于遍历数组
var j = 0; // 用于检测是否整个数组都没有匹配

            // 先看有这个人
            for (i = 0; i < contacts.length; i++) {
                if (firstName === contacts[i]['firstName']) {
                    console.log("此人存在");

                    if (contacts[i].hasOwnProperty(prop)) {
                        return contacts[i][prop];
                    } else {
                        return "No such property";
                    }
                } else {
                    j++;

                }

            }
            if (j === contacts.length) {
                return "No such contact";
            }
// 请把你的代码写在这条注释以上
}

// 你可以修改这一行来测试你的代码
lookUp("Akira", "likes");

你可能感兴趣的:(算法 | Profile Lookup)