2017-08-18 35 views
0

的對象鍵我有這樣的對象數組訪問在JS

const relationData = [ 
     { 
     kids: [ 
      { text: 'Newborn', value: 'newborn' }, 
      { text: 'For under 5\'s', value: 'under5' }, 
      { text: 'Teenagers', value: 'teenagers' } 
     ] 
     }, 

我怎麼會訪問這裏的話kids?我想檢查我的價值==孩子?

我試圖這樣做的:

for (var key in data) { 
    console.log(key); 
} 

但這似乎只是回到我的索引

PS我不想提到這個詞KIDS AS我不會它是可重用的

+0

你想要有一組數據或一個鍵值(字典)數據對? –

+0

尋找使用Object.keys()'。這將返回一個對象的鍵(足夠有趣!)。因此,循環訪問數組,檢查數組中每個對象的鍵。 –

+0

yes鍵只是當前索引,你可以使用你的循環打印出每個obj,比如'for(var key in data){console.log(data [key]); }'或訪問像'console.log(data [key] .kids)的孩子數組;' –

回答

0

您可以通過relationData每個obj的鑰匙圈像下面

for (var index in relationData) { 
    var keys = Object.keys(relationData[index]); 
    console.log(keys.indexOf("kids") > -1)// then relationData has an object with a key of "kids" 
} 

「孩子」可以是一個變量,所以你可以與其他鍵名重用這個

+0

轟隆!這正是我想要的。歡呼我的男人 –

0

如果你想要它中心提供全方位的陣列上,在訪問的每一個孩子的價值,你應該做的:

for (let x = 0; x < relationalData.length; x++){ 
    for (let y = 0; y < relationalData[x].kids.length; y++) { 
    console.log(relationalData[x].kids[y].value 
    } 
} 

請記住,根據您的數據結構,你有兩個數組:

  1. relationalData
  2. 每個關係數據對象你有一組孩子:關係數據[X] .kids

如果你想要訪問關係數據裏面的每個對象的鍵,你應該做

Object.keys(relationalData[x])