2015-10-21 75 views
1

我遇到了從對象的鍵訪問值的問題。使用for循環從Javascript對象中獲取值

我傳遞this.fields其中有2個對象數組一樣,

[{'First Name': 'firstName'}, {'Last Name': 'lastName'}] 

我能夠使用Object.keys函數獲取密鑰,但無法弄清楚如何讓與之相關的值。

let properties = []; 
for (let field of this.fields) { 
    console.log(field); 
    properties.push({ 
    "name": Object.keys(field), 
    "value": "" 
    }); 
} 

我試圖做this.fields[field]得到它,但它返回undefined。有關如何解決這個問題的任何建議?

+3

那豈不是更有意義,有2個鍵,而不是1個陣列2個對象每一個對象1 1鍵? – MinusFour

回答

2
let properties = []; 
for (let field of this.fields) { 
    for (let prop in field) { 
    properties.push({ "name": prop, "value": field[prop] }); 
    } 
} 
+0

謝謝你這個工作,我假設我需要第二個for循環來超越對象,一旦它被從數組中取出。不知道爲什麼我沒有想到這一點! – Shawn

+1

當你不需要時避免'hasOwnProperty'。你的第一個版本好多了。 – Bergi

1

如果只有一個鍵/值對,你可以這樣做:

let key = Object.keys(field)[0]; 
let value = field[key];