簡體   English   中英

Javascript:console.log Javascript對象

[英]Javascript: console.log Javascript object

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 Way,WA,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" 

您應該檢查該值是否是一個對象。 密鑰將始終是字符串。

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 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM