Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.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 - Fatal编程技术网

JavaScript推送子键

JavaScript推送子键,javascript,Javascript,我有以下数组:vm.posts.items 如何将数据推入子键?这不起作用: vm.posts.items[arrayid].comment.push = response.plain(); 更多信息: 这是addComment函数(console.log与下面的数据结构匹配): 数据结构: 数组ID:1 答复: \u嵌入式:对象 _链接:对象 createdAt:对象 身份证号码:91 资源:对象 文本:“测试” __原型:对象 vm.posts.items(仅打开一个): 0:对象 1:对

我有以下数组:
vm.posts.items

如何将数据推入子键?这不起作用:

vm.posts.items[arrayid].comment.push = response.plain();
更多信息: 这是addComment函数(console.log与下面的数据结构匹配):

数据结构: 数组ID:
1

答复:

\u嵌入式:对象
_链接:对象
createdAt:对象
身份证号码:91
资源:对象
文本:“测试”
__原型:对象

vm.posts.items(仅打开一个):
0:对象
1:对象
2:对象
3:对象
4:对象
5:对象
6:对象
7:反对
8:反对
9:反对
$$hashKey:“对象:48”
_嵌入:对象
_链接:数组[0]
评论:反对
__原型:对象
createdAt:对象
身份证号码:42
资源:对象
正文:“Lorem ipsum dolor sit amet”
评论总数:0
__原型:对象

vm.posts.items[arrayid]:
$$hashKey:“对象:41”
_嵌入:对象
_链接:数组[0]
评论:反对
commentFormVisible:正确
评论形式:“测试”
createdAt:对象
身份证号码:134
资源:对象
案文:“f”
评论总数:0

__proto_uuuuo:Object

确保在
arrayid
索引处的数组中创建对象类型

如果不确定,则使用以下模式

vm.posts.items[arrayid] = vm.posts.items[arrayid] || {};
vm.posts.items[arrayid].comment = response.plain();
只有在尚未创建对象时,第一行才会创建对象


更新问题:

看起来连注释都应该有一个数组。所以

if(!vm.posts.items[arrayid]) {
   vm.posts.items[arrayid] = {};
   vm.posts.items[arrayid].comment = [];
}
vm.posts.items[arrayid].comment.push(response.plain());

确保在
arrayid
索引处的数组中创建对象类型

如果不确定,则使用以下模式

vm.posts.items[arrayid] = vm.posts.items[arrayid] || {};
vm.posts.items[arrayid].comment = response.plain();
只有在尚未创建对象时,第一行才会创建对象


更新问题:

看起来连注释都应该有一个数组。所以

if(!vm.posts.items[arrayid]) {
   vm.posts.items[arrayid] = {};
   vm.posts.items[arrayid].comment = [];
}
vm.posts.items[arrayid].comment.push(response.plain());

你可能需要分阶段去做-希望你不需要所有这些,但是

vm.posts = {}
vm.posts.items = []
vm.posts.items[arrayid] = {}
vm.posts.items[arrayid].comment = response.plain();

你可能需要分阶段去做-希望你不需要所有这些,但是

vm.posts = {}
vm.posts.items = []
vm.posts.items[arrayid] = {}
vm.posts.items[arrayid].comment = response.plain();

push
Array
原型中的一个函数,您应该执行以下操作:

vm.posts.items[arrayid].comment.push(response.plain());
假设在执行
vm.posts.items[arrayid].comment时,您会得到一个数组,但如果没有数据结构或更多代码,则很难提供最适合您的问题的解决方案

根据你添加的代码,你不能只做:

vm.posts.items[arrayid].comment = response;

根据你的评论,你可以考虑向你的数据添加一个<代码>注释< /代码>属性,一个你可以在这里发表评论的数组:

 vm.posts.items[arrayid].comments = vm.posts.items[arrayid].comments || [];
 vm.posts.items[arrayid].comments.push(response.plain());

push
Array
原型中的一个函数,您应该执行以下操作:

vm.posts.items[arrayid].comment.push(response.plain());
假设在执行
vm.posts.items[arrayid].comment时,您会得到一个数组,但如果没有数据结构或更多代码,则很难提供最适合您的问题的解决方案

根据你添加的代码,你不能只做:

vm.posts.items[arrayid].comment = response;

根据你的评论,你可以考虑向你的数据添加一个<代码>注释< /代码>属性,一个你可以在这里发表评论的数组:

 vm.posts.items[arrayid].comments = vm.posts.items[arrayid].comments || [];
 vm.posts.items[arrayid].comments.push(response.plain());


您得到的错误是什么?注释不需要推送,您正在vm.posts.items[arrayid]@Simon我更新了我的答案,检查它是否适用于您的问题。您得到的错误是什么?注释不需要推送,您正在vm.posts.items[arrayid]中的指定键处对对象进行直接赋值@Simon我更新了我的答案,检查它是否对您的问题有效。这不起作用,vm.posts.items[arrayid].comment.push不是一个函数。在这种情况下,您必须提供更多信息。我在问题中提供了更多信息。不可能只分配commentObj,因为用户和日期时间由api设置,并包含在CallbackCorry中,经过编辑。只需说出响应的console.log。这不起作用,vm.posts.items[arrayid].comment.push不是一个函数。在这种情况下,您必须提供更多信息。我在问题中提供了更多信息。不可能只分配commentObj,因为用户和日期时间是由api设置的,并包含在callbackSorry中,经过编辑。只需说出您的console.log响应。@Shanimal已更正,谢谢:)谢谢您的回答。我的控制台显示:vm.posts.items[arrayid].comment.push不是函数hmm,上面的代码将创建一个数组,如果它还不存在的话。如果您使用的是chrome,我建议您清除缓存或以匿名方式运行(只是为了确保没有使用旧的js),但是数组vm.posts.items[arrayid]已经存在,这意味着没有创建数组注释。如何检查vm.posts.items[arrayid]中的注释数组是否存在?@Shanimal更正,谢谢:)谢谢您的回答。我的控制台显示:vm.posts.items[arrayid].comment.push不是函数hmm,上面的代码将创建一个数组,如果它还不存在的话。如果您使用的是chrome,我建议您清除缓存或以匿名方式运行(只是为了确保没有使用旧的js),但是数组vm.posts.items[arrayid]已经存在,这意味着没有创建数组注释。如何检查vm.posts.items[arrayid]中的注释数组是否存在?我想我不能只分配对象,因为将有多个注释->必须有一个数组。Post必须插入数组的末尾。我想我不能只分配对象,因为将有多个注释->必须有一个数组。必须在数组末尾插入Post。