2017-04-06 117 views
1

所以,我有一個對象數組,看起來像這樣訪問嵌套的對象(及其數據):在地圖功能

var renderBottles = bottleArray.map(bottle => (
    <div> {bottle.bottleId} - {bottle.qty} <a href='#' onClick={() => this.props.store.del(0)}>X</a></div> 
)) 

這一切工作得很好!

但是,我想在我的地圖循環中訪問第一個對象。

Highlighted object

因爲我與火力的工作,這個名字是隨機的,所以我的問題是:我如何引用基於其在對象數組位置該對象以及如何我所有檢索嵌套數據在地圖功能的同時?

這可能嗎?

Nested Object Data

我一直在擺弄現在用這一段時間沒有得到任何地方,希望得到任何幫助。

謝謝!

+0

它是完全隨機的嗎?或者它是否包含任何共同的東西 –

+0

該值是由firebase自動生成的,儘管它不完全是隨機的,但我認爲它不應該以任何方式被視爲「可預測的」。 – Hookkid

回答

0

如果請求的對象類型的object你可以做

for(var key in bottle) { 
    if(typeof bottle[key] === 'object') { 
     // bottle[key] is the desired object 
    } 
} 
+0

嘿,謝謝你的回答!我引用了上面提到的同樣的評論,因爲我認爲它也適用於此:我嘗試過類似的方法,它在某種程度上工作(我可以檢索嵌套的對象數據),但我仍然無法「合併」它與地圖功能中的其他相關信息進行比較。 如果我在我的地圖功能中使用了{bottle.-KbseOJMQkbUafy9rvJo.discountedPrice},它會起作用,所以我正在尋找一種解決方法,如果你趕上了我的漂移,我會在{bottle。[0] .discountedPrice}之類尋找解決方法。 – Hookkid

0

我相信你正在使用ES6語言的唯一價值。如果隨機密鑰對象是數組集合中唯一的對象,則現在可以執行以下操作:

for (let key in bottleArray) { 
    if(typeof bottleArray[key] === 'object') { 
     let innerObj = bottleArray[key]; 
     //use innerObj['discountedPrice'] etc. 
    } 
} 
+0

嘿,謝謝你的回答!我嘗試了類似的方法,它在某種程度上工作(我可以檢索嵌套的對象數據),但在map函數中,我仍然無法將它與其他相關信息「合併」。 如果我在我的地圖功能中使用了{bottle.-KbseOJMQkbUafy9rvJo.discountedPrice},它會起作用,所以我正在尋找一種解決方法,如果你趕上了我的漂移,我會在{bottle。[0] .discountedPrice}之類尋找解決方法。 – Hookkid