Javascript 如何使用for/in循环传递对象属性?
我有一个嵌套的对象,如下面的示例所示Javascript 如何使用for/in循环传递对象属性?,javascript,loops,object,Javascript,Loops,Object,我有一个嵌套的对象,如下面的示例所示 var posts = { "post1": { "slug": "slug1", "title": "title1", }, "post2": { "slug": "slug2", "title": "title2", } }; 我正在尝试编写一个for/in循环,它将允许我遍历这个对象 var test
var posts = {
"post1": {
"slug": "slug1",
"title": "title1",
},
"post2": {
"slug": "slug2",
"title": "title2",
}
};
我正在尝试编写一个for/in循环,它将允许我遍历这个对象
var testLoop = function () {
for (var prop in posts){
post = prop;
console.log(post); // Outputs post1 and post2
console.log(post.slug); // Outputs undefined
}
}
如上所述,我无法存储并稍后访问每个迭代对象的属性。仅存储和记录对象的名称。当我运行typeof时,我看到它甚至不是一个对象,它只是一个字符串
在循环过程中,如何正确地将每个迭代属性存储为对象(post1、post2等),以便使用点表示法访问它们的属性?使用
for (var prop in posts){ ... }
它在posts
对象中的字符串键上循环
这里的要点是prop
将是一个字符串,而不是当前代码所期望的对象
正如评论中的用户所建议的,因为prop
是作为字符串的对象键,所以需要使用posts[prop]
来引用实际对象
下面是一些更新的代码
var testLoop = function () {
for (var prop in posts){
post = posts[prop]; // ** this is line that needs to be modified **
console.log(post); // Outputs post object
console.log(post.slug); // this should work now
}
}
posts[prop].slug
您可以在中阅读关于..的。