在as3中的Object中构造变量

时间:2013-02-05 23:22:38

标签: actionscript-3 flex flex4 flex4.5 flexbuilder

您好我有以下ArrayCollection:

priceModel.model.arrayProducts.addItem( {'productID':pc.productID, 'product':pc.product,
'provider1': {'value':0, 'selected':false},                                                             'provider2': {'value':0, 'selected':false},                                                             'provider3': {'value':0, 'selected':false},                                                             'provider4': {'value':0, 'selected':false},                                                             'provider5': {'value':0, 'selected':false},                                                             'provider6': {'value':0, 'selected':false});

我有一套产品,问题是我需要迭代产品并访问某个提供商,例如:

priceModel.model.arrayProducts[product_index].('provider'+(idx+1)).value;

这不起作用。如何将代码集中在每个产品的访问者的provider_X上?

感谢。

1 个答案:

答案 0 :(得分:0)

对于ArrayCollection你不能使用[]语法 - 你必须使用getItemAt来访问该项:

priceModel.model.arrayProducts.getItemAt(product_index)

要“动态”访问对象的属性,您反过来使用[]:

['provider'+(idx+1)].value;

所以这应该有效:

priceModel.model.arrayProducts.getItemAt(product_index)['provider'+(idx+1)].value;