2015-09-24 60 views
5

我有以下forEach遍歷一個JSON對象調用objJSON的forEach得到鍵和值

Object.keys(obj).forEach(function(){ 
}); 

我怎樣才能使它console.logkey和對象內的每個項目的value?像這樣:

Object.keys(obj).forEach(function(k, v){ 
    console.log(k + ' - ' + v); 
}); 

這可能嗎?

回答

11

使用索引符號與關鍵。

Object.keys(obj).forEach(function(k){ 
    console.log(k + ' - ' + obj[k]); 
}); 
0

嘗試這樣:

var prop; 
for(prop in obj) { 
    if(!obj.hasOwnProperty(prop)) continue; 

    console.log(prop + " - "+ obj[prop]); 
} 
3

假設obj是預構建的對象(而不是一個JSON字符串),您可以通過以下實現:

Object.keys(obj).forEach(function(key){ 
    console.log(key + '=' + obj[key]); 
}); 
+0

'hasOwnProperty'不是必須的,因爲'Object.keys'已經只包含了自己的屬性。 ([MDN](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/keys)) –

+0

Doenst Object.keys()確保只有對象本身的屬性是訪問?所以不需要hasOwnProperty? – fubbe

+0

這是非常真實的,很好的捕捉。 – duncanhall

0

另一種簡單的方法來做到這一點是通過以下語法通過對象迭代,保持訪問鍵和值:

for(var key in object){ 
    console.log(key + ' - ' + object[key]) 
} 

所以你:

for(var key in obj){ 
    console.log(key + ' - ' + obj[key]) 
} 
+0

在這種情況下,必須使用'hasOwnProperty',因爲for ...在構造中包含通過原型鏈繼承的屬性。 –