var friends = {};
friends.steve = {
firstName : "Steve",
lastName : "Jobs",
number: "(206) 555-5555",
address: ['One Microsoft Way','Redmond','WA','98052']
};
function list(obj) {
for(var key in obj) {
if(key instanceof Object == true) {
console.log(obj[key].join(", "));
} else {
console.log(obj[key]);
}
}
}
嗨,我想循环对象friends.steve和console.log它的每个属性,到目前为止一切正常,但我希望当我的代码到达friends.steve对象的地址数组时,它应该记录这个地址数组如“One Microsoft Way, Redmond, WA, 98052”而不是类似的数组,任何人都可以帮我解决这个问题。谢谢
最佳答案
- 如果是数组,您需要检查 value =
obj[key]
。key instanceof Object
将始终返回 false。 - 尝试使用
isArray()
或instancof Array
而不是Object
。
var friends = {};
friends.steve = {
firstName: "Steve",
lastName: "Jobs",
number: "(206) 555-5555",
address: ['One Microsoft Way', 'Redmond', 'WA', '98052']
};
list(friends.steve);
function list(obj) {
for (var key in obj) {
if (Array.isArray(obj[key])) { //Or if(obj[key] instanceof Array) {
console.log(obj[key].join(','));
} else {
console.log(obj[key]);
}
}
}
<小时/>
结果:
"Steve"
"Jobs"
"(206) 555-5555"
"One Microsoft Way,Redmond,WA,98052"
关于Javascript:console.log Javascript 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24229624/