2016-11-05 14 views
0

私はいくつかのデータが入ったオブジェクトを持っています。第1レベルのデータは2つの配列(本体、原因)です。各本体と原因配列には、それらの内部に配列があります(日付、年)。動的オブジェクト名を使用してオブジェクトにアクセスする

totals:[{body:[ 
      {date:[54,9,3,17]}, 
      {year:[437,61,31,140]}]}, 
     {cause:[ 
      {date:[54,9,3,17]}, 
      {year:[437,61,31,140]}] 
     }] 

私がしたいのは、ユーザーが変更したものに基づいてbody/cause配列に動的にアクセスすることです。

これは私が今アクセスする方法です。

totals[isCause].body[isYear].date[filterNumber]); 

私の問題はボディと日付がハードコードされているため、body/cause date/yearにアクセスしたいと思います。私は、これらのプロパティ名がどのように格納されているかを見つけることができない。私はvarを設定してこのようなことをしようとしました

var bodyCause = "body"; 

私はリトリーバーのステートメントに戻してみました。

totals[isCause].bodyCause[isYear].date[filterNumber]); 

しかし、それは失敗します。だから、私はちょうどそのプロパティ名が格納されていると私は動的に設定することができます私は情報を取得する必要がある場合を把握しようとしています。

+0

プロパティに動的にアクセスする方法は既に知っています: 'totals [isCause]'。 –

+1

'合計[isCause] [bodyCause] [isYear] .date [filterNumber]'? –

答えて

1

あなたの試行はほとんど間違いありませんでした。 var bodyCause = "body";を簡単に使用してコンテンツに動的にアクセスできます。代わりに、この

totals[isCause].bodyCause[isYear].date[filterNumber]); 

のあなたは、あなたの問題を修正する必要があり、この

totals[isCause][bodyCause][isYear].date[filterNumber]); 

を使用する必要があります。

+0

その情報をありがとう! – icekomo

関連する問題