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