我正在尝试显示对象的属性。属性之一是对象。
/*IE7-*/ filter: progid:DXImageTransform.Microsoft.Gradient(startColorStr='#0c93c0', endColorStr='#FFFFFF', GradientType=0);
/*IE8+*/ -ms-filter: "progid:DXImageTransform.Microsoft.Gradient(startColorStr='#0c93c0', endColorStr='#FFFFFF', GradientType=0)";
当我使用循环来显示属性和值时,名为“ comments”的对象属性仅显示: '注释[object object]'
但是我想显示为: '评论 作者:价值 身体:一些身体'
答案 0 :(得分:2)
您需要检查typeof blog[key]
(值)而不是typeof
key
(键)。
您需要写blog[key][key2]
的{{1}}。
key[key2]
,因为blog[key].toString() !== "[object Object]"
,Date
和Array
也是null
。
Object
答案 1 :(得分:1)
您要在此处将对象强制为字符串
console.log(key + ': ' + blog[key]);
这就是为什么打印comment [object object]
let myBlog = {
title: 'My First Blog',
body: 'This is the first article that blah lorem lorem lorem blah',
author: 'Koko Bleh Bleh',
views: 0,
comments: {
author: 'TheLegend27',
body: 'The legendary commentator'
},
isLive: false
};
function showBlog(blog) {
for (let key in blog) {
if (typeof key !== 'object') {
console.log(key + ': ', blog[key]);
} else {
console.log(key);
for (let key2 in key) {
console.log(key2 + ': ', key[key2]);
}
}
}
}
showBlog(myBlog)
答案 2 :(得分:1)
总结我的评论...
else
条件永远不会运行,因为key
总是字符串。您可能是说if (typeof blog[key] !== 'object')
key
是字符串,因此for (let key2 in key)
和key[key2]
并不是您想要的。您可能是说blog[key]
。但是如何使用递归... else { showBlog(blog[key]) }
let myBlog = {
title: 'My First Blog',
body: 'This is the first article that blah lorem lorem lorem blah',
author: 'Koko Bleh Bleh',
views: 0,
comments: {
author: 'TheLegend27',
body: 'The legendary commentator'
},
isLive: false
};
function showBlog(blog)
{
for(let key in blog)
{
if( typeof blog[key] !== 'object')
{
console.log(key + ': ' + blog[key]);
}
else
{
console.log(key);
showBlog(blog[key]) // recursively call
}
}
}
showBlog(myBlog)
答案 3 :(得分:0)
我们可以使用这样的简单代码,结果类似
title:我的第一个博客
body:这是blaem lorem lorem lorem blah的第一篇文章
作者:Koko Bleh Bleh
观看次数:0
评论作者:TheLegend27
评论正文:传奇的评论员
isLive:错误
function displayObjectValues(myObj, parentObjKey = '') {
for (let [key, value] of Object.entries(myObj)) {
if (typeof value == 'object') {
displayObjectValues(value, key);
} else {
console.log(`${parentObjKey} ${key} : ${value}`);
}
}
}