我有一个json对象“shopping_cart”,里面有另一个名为“items”的对象。
一旦用户在购物车上添加了一些新商品,我想更新json对象,所以 我在“items”对象上添加了一个新项。现在的问题是新的项目 添加到“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等。
非常感谢。
答案 0 :(得分:2)
由于您只添加了一个项目,因此无需使用jQuery的extend
。只需设置属性:
shopping_cart.items["item_"+new_num] = {"item_name":"fafafa", "qty":"", "price":"", "discount":"", "subtotal":""};
在[...]
内,您可以进行字符串操作。在{...:...}
内,你不是。