Javascript: console.log Javascript object

Javascript: console.log Javascript object

本文关键字:Javascript object log console      更新时间:2023-09-26
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]);
        }
   }
}   

嗨,我想循环对象好友。steve和console.log的每个属性,直到现在一切都是工作的,但我希望当我的代码到达我的朋友的地址数组。steve object,它应该记录这个地址数组像"One Microsoft Way, Redmond, WA, 98052"而不是像数组,谁能告诉我怎么做。由于

Demo小提琴

  • 如果是数组,需要检查值= 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" 

您应该检查该值是否为对象。键总是一个字符串。

if(obj[key] instanceof Object == true) {

也可以用Array.isArray(obj[key])

不要指望if (obj[key] instanceof Object) {

然而,你可以这样做:

   for(var key in obj) {
        if(key =='address') {
        console.log(obj[key].join(", "));
        } else {
        console.log(obj[key]);
        }
   }

在你的例子中:

for(var key in friends.steve ) {
        if(key =='address') {
        console.log(friends.steve[key].join(", "));
        } else {
        console.log(friends.steve[key]);
        }
   }
结果:

Steve VM204:6
Jobs VM204:6
(206) 555-5555 VM204:6
One Microsoft Way, Redmond, WA, 98052