Angular 2使用动态密钥从json数组中获取密钥和值

问题描述:

我想从动态密钥的json数组中获取密钥和值。意思是,我不知道什么是关键。Angular 2使用动态密钥从json数组中获取密钥和值

这是一个例子的JSON的功能得到:

arr = [ 
     {key1: 'val1'}, 
     {key2: 'val2'}, 
     {key3: 'val3'} 
     ]; 

看似简单给我,但我不能让每个项目的键和值。

这是我试过(基于this pipe):

for (let key of arr) { 
    console.log ('key: ' + key + ', value: ' + arr[key]); 
} 

但是我得到的日志如下:

key:[object Object], value: undefined 

我预期的行为是得到如下:

key:key1, value:val1 

我在做什么错?我怎样才能得到钥匙和价值?

+0

为...在阵列回报项目(值):

for (let obj of arr) { console.log("object:", obj); for (let key in obj) { console.log(" key:", key, "value:", obj[key]); } } 

从您发布

for (let key in arr) { console.log ('key: ' + key + ', value: ' + arr[key]); } 

下面的代码...将在一个数据结构是这样的工作/目的。 for ... in返回数组/对象中的键。所以你需要一个更多的内部循环与...来获取每个项目的密钥。 –

在你的例子中,你有一个对象数组,每个对象都有一个属性。

let arr = { 
    key1: 'val1', 
    key2: 'val2', 
    key3: 'val3' 
}; 

你需要另一个用于循环访问键和值,

for (let key of this.arr) { 
for(var i in key){ 
     console.log('key: ' + i + ', value: ' + key[i]); 
} 
} 

检查console

DEMO

arr = [ 
     {key1: 'val1'}, 
     {key2: 'val2'}, 
     {key3: 'val3'} 
     ]; 


for (let key of arr.keys()) { 
    console.log ('key: ' + key + ', value: ' + Object.keys(arr[key])[0]); 
} 

结果:

"key: 0, value: key1" 
"key: 1, value: key2" 
"key: 2, value: key3"