0

我有一个代码

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 新手。无法解决问题。

谢谢你。

4

2 回答 2

0

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

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

于 2013-02-24T19:52:29.990 回答
0

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

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

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

于 2013-02-24T19:53:40.313 回答