2017-05-31 41 views
2

我有類似的數據結構:如何做.forEach()在JavaScript中的對象?

var object = { 
    name: "a", 
    number: "1", 
    mission: ['a','b','c'] 
} 

現在我想將它們更新到數據庫中,所以我需要走他們。

我想:

object.forEach(function(value, key, map){ 
    console.log('value: ' + value + ', key: ' + key + ', map:' + map); 
}); 

然後控制檯報告一個錯誤:object.forEach is not a function

+0

'forEach'應與對象數組不會被調用。如果你嘗試使用對象數組,它將工作 – Sridhar

+0

'for(var key in object)console.log(key,object);' – sudo

+2

在現代JS Object.entries(object).forEach(([key,value] )=> console.log(\\ key:$ {key},value:$ {value} \'));' 使用polyfill和transpilers,它應該運行在任何地方:p –

回答

3

試試這個,

Object.keys(object).forEach(key=>{ 
    console.log(key ,object[key]); 
}) 
+1

謝謝,我如何輸出地圖?這似乎是平面數組字符串...... –

+0

@AeroWang well'forEach'第三個參數是你已經調用了'forEach'的實際數組本身。數組正在轉換爲字符串,因爲我們正在使用字符串添加它。 – nrgwsth

+0

如何保持它作爲一個數組? –

0

你可以不喜歡這樣。

var object = { 
    name: "a", 
    number: "1", 
    mission: ['a','b','c'] 
} 
for(var key in object) console.log(key, object[key]); 
+0

謝謝,我該如何輸出地圖?此外,這似乎扁平陣列成字符串... –

-1

使用此,

for (var item in object) { 
    console.log('value: ' + object['name'] + ', key: ' + object['number'] + ', map:' + object['mission']); 
} 
+0

不,該對象的關鍵將改變,他們可能不是名稱,數字和任務 –

+1

爲什麼你用'item'循環鍵,但然後沒有做任何事情用它? – 2017-05-31 05:13:01