2017-07-30 146 views
3

我想從動態密鑰的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返回數組/對象中的鍵。所以你需要一個更多的內部循環與...來獲取每個項目的密鑰。 –

回答

5

在你的例子中,你有一個對象數組,每個對象都有一個屬性。

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

你需要另一個用於循環訪問鍵和值,

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

檢查console

DEMO

-1
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"