din*_*o_d 4 javascript arrays object
所以我正在通过freecodecamp,我正在解决那里的问题,继续编程循环,我偶然发现了一个障碍,我不太确定是什么问题.
所以我有一个名为contacts的对象数组,我需要创建一个名为的函数lookUp(firstName, prop).作业的文本是这样的:
该函数应检查是否
firstName是实际联系人firstName,并且给定的property(prop)是该联系人的属性.如果两者都为真,则返回该属性的"值".
如果
firstName不对应任何联系人,则返回"没有此类联系人"如果
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": ["Intruiging Cases", "Violin"]
},
{
"firstName": "Kristian",
"lastName": "Vos",
"number": "unknown",
"likes": ["Javascript", "Gaming", "Foxes"]
},
];
function lookUp( firstName, prop ){
for( var i = 0; i < contacts.length; i++ ){
if( contacts[i].firstName == firstName ) {
if( contacts[i].hasOwnProperty( prop ) ) {
return contacts[i].prop;
} else {
return "No such property";
}
} else {
return "No such contact";
}
}
}
// Change these values to test your function
lookUp("Kristian", "lastName");
Run Code Online (Sandbox Code Playgroud)
所以我循环遍历数组,for循环检查每个对象.在第一个if我检查firstName该对象的属性是否等于函数参数firstName,然后如果它是真的,我检查该对象是否具有该属性prop,我应该能够返回它.但似乎是这样
return contacts[i].prop;
Run Code Online (Sandbox Code Playgroud)
不工作,我有点迷失为什么.我确定这是微不足道的,但我不明白为什么.当我去控制台,并测试
contacts[0].likes
Run Code Online (Sandbox Code Playgroud)
我把阵列拿出来了["Pizza", "Coding", "Brownie Points"],但在我看来,那是不行的.我在这做错了什么?
编辑
好的,我试过了
function lookUp( firstName, prop ){
for( var i = 0; i < contacts.length; i++ ){
if( contacts[i].firstName == firstName ) {
if( contacts[i].hasOwnProperty( prop ) ) {
return contacts[i][prop];
} else {
return "No such property";
}
} else {
return "No such contact";
}
}
}
Run Code Online (Sandbox Code Playgroud)
但我仍然得到同样的错误:
好吧,我很笨,我太早退出了我的循环:
function lookUp( firstName, prop ){
for( var i = 0; i < contacts.length; i++ ){
if( firstName == contacts[i].firstName ) {
if( contacts[i].hasOwnProperty( prop ) ) {
return contacts[i][prop];
} else {
return "No such property";
}
}
}
return "No such contact";
}
Run Code Online (Sandbox Code Playgroud)
这有效.
| 归档时间: |
|
| 查看次数: |
14848 次 |
| 最近记录: |