Javascript:无法从数组中检索值

时间:2013-02-24 19:50:57

标签: javascript

我有一个代码

alert(JSON.stringify((this.shop.get('selectedOrder')).get('orderLines')));

结果看起来像这样

[{"cart_weight":0,"total_weight":1,"quantity":1,"list_price":1,"discount":0,"ean13":false,"product_image_small":false,"name":"Watermelon1","pos_categ_id":[1,"Others"],"taxes_id":[],"id":2}]

当我运行此代码时

alert((this.shop.get('selectedOrder')).get('orderLines').total_weight);

结果变为

undefined

任何出口都可以提供帮助吗?

我怀疑是导致问题[{}]的双重括号,但我是javascript的新手。无法解决问题。

谢谢。

2 个答案:

答案 0 :(得分:0)

尝试alert((this.shop.get('selectedOrder').get('orderLines')[0].total_weight);

正如您所怀疑的那样,您的结果不是一个对象(在javascript术语中,{}之间的任何数据),而是一个包含一个对象的数组([])。因此,您必须在访问属性之前访问数组的第一个元素。

答案 1 :(得分:0)

您选择的订单有多行。您需要选择从哪个行获取total_weight。在这种情况下,只有一行 - 因此您可以使用[0]来引用它。即:

alert((this.shop.get('selectedOrder')).get('orderLines')[0].total_weight);

例如,如果您需要计算整个订单的权重,则可以迭代所有订单行,并计算总和。