2017-04-06 10 views
1

は、だから私はこのようになりますオブジェクト配列を持っている:アクセスするネストされたオブジェクト(およびそのデータ)

Object Array

私はその後、私のHTMLは、このような文字列を描画作成するマップ機能を使用します。

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

これはすべて正常に機能します。

ただし、マップループ中にその最初のオブジェクトにアクセスしたいと思います。

Highlighted object

私はfirebaseで働いているので、私の質問があるので、その名前は、ランダムである:どのように私は、オブジェクト配列内のその位置に基づいて、そのオブジェクトを参照するか、どのように私はすべてのネストされたデータを取得します地図機能の中で?

これは可能ですか?

Nested Object Data

私は、どこにもなっていない今、しばらくの間、このいじるしてきた任意の助けをいただければ幸いです。

ありがとうございます!

+0

完全にランダムですか?またはそれに共通のものが含まれています –

+0

その値はfirebaseによって自動的に生成されるため、完全にランダムではありませんが、どのような意味でも「予測可能」とはみなされません。 – Hookkid

答えて

0

要求されたオブジェクトは、私はあなたがES6言語を使用していると考えているあなたは

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

を行うことができobjectタイプの値のみである場合。ランダムキーのオブジェクトが配列コレクション内の唯一のオブジェクトである場合は、次のようにすることができます。

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

お返事ありがとう!私は同様のアプローチを試みましたが、ある程度は機能します(ネストされたオブジェクトデータを取り出すことができます)が、マップ機能では他の関連情報と「マージ」できません。 私のマップ関数で{bottle.-KbseOJMQkbUafy9rvJo.discountedPrice}を実行した場合、ドリフトをキャッチすると{bottle。[0] .discountedPrice}のようなもので回避策を探しています。 – Hookkid

関連する問題