Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.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 &引用;推-对数组进行初始化将返回数组的长度_Javascript_Arrays - Fatal编程技术网

Javascript &引用;推-对数组进行初始化将返回数组的长度

Javascript &引用;推-对数组进行初始化将返回数组的长度,javascript,arrays,Javascript,Arrays,我遇到的问题是,当我解析一个JSON字符串(它更正了返回一个元素数组)时,我会尝试将一个新元素推送到具有空值的数组中 这里的问题是: console.log('addons ', this.categories[this.editingId - 1].addons); console.log('parsed ', JSON.parse(this.categories[this.editingId - 1].addons)); console.log('pushed ', JSON.parse(t

我遇到的问题是,当我解析一个JSON字符串(它更正了返回一个元素数组)时,我会尝试将一个新元素推送到具有空值的数组中

这里的问题是:

console.log('addons ', this.categories[this.editingId - 1].addons);
console.log('parsed ', JSON.parse(this.categories[this.editingId - 1].addons));
console.log('pushed ', JSON.parse(this.categories[this.editingId - 1].addons).push({name:'', price:''}));
插件是[{“名称”:“辣椒”,“价格”:50},{“名称”:“辣味香肠”,“价格”:150},{“名称”:“鸡肉”,“价格”:250},{“名称”:“奶酪”,“价格”:150},{“名称”:“西兰花”,“价格”:100},{“名称”:“玉米”,“价格”:75},{“名称”:“额外酱”,“价格”:250},{“名称”:“额外肉”,“价格”:350}]

最后一个参数返回一个整数作为数组的长度,此时它应该将新推送的元素记录到数组中

如何成功推送到阵列

此处显示了一个最简单的示例:

Array.push()
返回数组的长度。这是一个文档化的特性。您正在成功地推送到阵列。您只是没有成功地
console.log
ing新值。当您
console.log()

JSON.parse(this.categories[this.editingId - 1].addons).push({name:'', price:''}))
您将记录
push()
的返回值,而不是被推入的数组

要解决此问题,您应该保存
JSONA.parse()
push
,然后
console.log

let addons='[{“name”:“Peppers”,“price”:50},{“name”:“Pepperoni”,“price”:150},{“name”:“Chicken”,“price”:250},{“name”:“Cheese”,“price”:150},{“name”:“brocoli”,“price”:100},{“name”:“Corn”,“price”:75},{“name”:“Extra Sauce”,“price”:250},{“name”:“Extra must”,“price”:350};
var parsed=JSON.parse(插件)
log('parsed',parsed);
push({名称:'Caviar',价格:'10000'})
log('push',已解析)
Array.push()
返回数组的长度。这是一个文档化的特性。您正在成功地推送到阵列。您只是没有成功地
console.log
ing新值。当您
console.log()

JSON.parse(this.categories[this.editingId - 1].addons).push({name:'', price:''}))
您将记录
push()
的返回值,而不是被推入的数组

要解决此问题,您应该保存
JSONA.parse()
push
,然后
console.log

let addons='[{“name”:“Peppers”,“price”:50},{“name”:“Pepperoni”,“price”:150},{“name”:“Chicken”,“price”:250},{“name”:“Cheese”,“price”:150},{“name”:“brocoli”,“price”:100},{“name”:“Corn”,“price”:75},{“name”:“Extra Sauce”,“price”:250},{“name”:“Extra must”,“price”:350};
var parsed=JSON.parse(插件)
log('parsed',parsed);
push({名称:'Caviar',价格:'10000'})
log('push',已解析)
您需要将数组存储在变量中,修改它,然后输出修改后的数组


您需要将数组存储在一个变量中,修改它,然后输出修改后的数组。

请发布一篇帖子,为什么会有一大堆
JSON.parse
?它应该从一开始就是一个对象,或者您应该将其转换并保存为第一步。添加了一个示例@A.Lau,因为它是一个存储在数据库中的JSON字符串,还没有被解析。请发布一个帖子,为什么会有一大堆
JSON.parse
?它应该从一开始就是一个对象,或者您应该将其转换并保存为第一步。添加了一个示例@因为它是一个存储在数据库中的JSON字符串,还没有被解析。