2015-10-21 97 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];