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。