Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在json中使用变量_Javascript_Json_Variables - Fatal编程技术网

Javascript 在json中使用变量

Javascript 在json中使用变量,javascript,json,variables,Javascript,Json,Variables,我有一个json对象“shopping_cart”,其中还有一个对象叫做“items” 我想在用户在购物车上添加一些新项目后更新json对象,所以 我在“items”对象上添加了一个新项。现在的问题是,新的项目将 添加到“items”对象需要有某种标识符,因此每当用户 添加一个新项目,它将是: $.extend(shopping_cart.items,{ "item_2":... $.extend(shopping_cart.items,{ "item_3":... 等等 我尝试用变量替换下面

我有一个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
但是运气不好,不管我以何种方式尝试,变量在任何情况下都被解析为字符串

那么,有没有办法通过使用变量来动态创建对象呢?我还需要 此选项用于使用动态变量更新项目名称、数量、价格等


非常感谢。

因为您只添加了一项,所以不需要使用jQuery的
extend
。只需设置属性:

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

[…]
中,您可以执行字符串操作。在
{…:…}
中,您不是。

我没有添加任何项目。“那只是描述情况而已。”“bornie,你仍然可以这样做;只需为每个项目使用一行。它也将比jQuery的
extend
更快(
extend
适用于可能已经存在同名项的情况,您希望对其进行扩充而不是替换)。如果你真的想使用extend,用这个方法创建一个新的对象,然后把它传递给extend。实际上我们不使用item_1、item_2等。我们使用数组来实现这个。