//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(firstNames, prop){
// Only change code below this line
for (var i=0; i<contacts.length; i++){
if(contacts[i].firstName == firstNames){
for (var j=0; j<contacts[i].length; j++){
if(contacts[i][j] == prop){
return contacts[i][j].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");
上面的代码不起作用,特别是在 for (var j=0; j<contacts[i].length; j++)
行上,因为当我在代码中运行 contacts[i].length
语句时,console.log
未定义
如何定义嵌套在另一个对象内的 JavaScript 对象的长度?
最佳答案
Object
原型(prototype)没有定义 length
函数,这就是它未定义
的原因。但是,您可以使用 Object.keys
获取对象中每个(自己的)属性键的数组:
var props = Object.keys(contracts[i]);
for (var j = 0; j < props.length; j++) {
// etc.
}
关于javascript - 抓取对象 Javascript 内的 Nested Objects.length,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44987206/