0

我有一个 json 对象“shopping_cart”,其中还有一个名为“items”的对象。

一旦用户在购物车上添加了一些新商品,我想更新 json 对象,因此我在“items”对象上添加了一个新商品。现在的问题是,将添加到“项目”对象的新项目需要具有某种标识符,因此每当用户添加新项目时,它将是:

$.extend(shopping_cart.items,{ "item_2":...
$.extend(shopping_cart.items,{ "item_3":...

等等

我尝试用变量替换下面的数字(1)

$.extend(shopping_cart.items,{ "item_1": {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""}});

类似于: var new_num = 5;

$.extend(shopping_cart.items,{ "item_"+new_num: {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""}});

所以它转化为:

 $.extend(shopping_cart.items,{ item_5

但是没有运气,无论我以何种方式尝试,变量在所有情况下都被解析为字符串。

那么有没有办法通过使用变量来动态创建对象呢?我还需要它来使用动态变量更新 item_name、qty、price 等。

十分感谢。

4

1 回答 1

2

由于您只添加一个项目,因此无需使用 jQuery 的extend. 只需设置属性:

shopping_cart.items["item_"+new_num] = {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""};

在 内[...],您可以进行字符串操作。在 内{...:...},你不是。

于 2013-03-19T19:09:23.617 回答