javascript - 访问数组元素任务
问题描述
这是我的任务:
已经为您预先编写了一个将名称和属性 (prop) 作为参数的lookUpProfile 函数。
该函数应该检查 name 是否是实际联系人的 firstName,并且给定的属性 (prop) 是该联系人的属性。
如果两者都为真,则返回该属性的“值”。
如果姓名与任何联系人不对应,则返回“No such contact”
如果 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");
解决方案
您的代码中有两个问题:
- 它总是在第一次接触后返回,不管它是否匹配
- 它将字符串 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";
}
推荐阅读
- python - This issue about compile keras model
- python - IPython 在第一个换行符后结束缩进块的输入
- java - git忽略Android Studio中的特定java类
- php - 向 Woocommerce 添加具有固定费用的百分比费用
- android - 如何从导航栏中删除后退按钮?
- intellij-idea - Texify IDEA:如何应用自定义代码样式?
- c# - 为什么此 Ozeki 文件中出现编译器错误 (CS1503)?
- c# - ClickOnce 格式不正确
- scroll - 根据浏览器窗口大小和/或向下滚动的滚动条加载额外的 ag-grid 表行
- python - 通过使用 scipy 更改参数来最小化函数