2016-11-05 98 views
0

我有一个内部有一些数据的对象。第一级数据是2个数组(body,cause)。每个body和cause数组都有数组(日期,年)。使用动态对象名称访问对象

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]); 

我的问题是身体和日期有硬编码的,我想有机会获得这两个机构/事业日期/年。我似乎无法找到这些属性名称存储为。我试图建立一个变种,并做这样的事情

var bodyCause = "body"; 

然后我试图将它传回到我的检索器语句。

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

但是失败了。所以我只是想弄清楚这个属性名称存储的是什么,以及当我需要检索信息时是否可以动态设置它。

+0

您已经知道如何动态访问属性:'totals [isCause]'。 –

+1

'totals [isCause] [bodyCause] [isYear] .date [filterNumber]'? –

回答

1

你的尝试几乎是正确的。您可以轻松使用var bodyCause = "body";并动态访问内容。取而代之的是

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

你应该使用这个

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

应该解决您的问题。

+0

感谢您的信息! – icekomo