数组不作为新索引推送,而是作为新数组推送

时间:2019-03-21 21:04:29

标签: javascript vue.js

我的对象包含以下格式:

[
    { },
    { }
]

但是我编写代码的方式是将其添加为

[
    [
        { }
    ],
    [
        { }
    ]
]

不确定发生了什么,这是我的代码:

var commentArray = [];

commentArray.push({
    'text': comment,
    'user': vm.user
});

reference.reference.comments.push(commentArray);

类似的作品:

reference.reference.comments.push({
    'text': comment,
    'user': vm.user
});

但是我想按commentArray吗?

2 个答案:

答案 0 :(得分:1)

让我看看您是否可以清楚知道

var commentArray = []; 
// here you are creating an empty array called commentArray 

commentArray.push({
    'text': comment,
    'user': vm.user
}); 
// Here you define an object, with 2 properties (text and user) 
// and push it to commentArray you created so 
// commentArray = [{'text': comment, 'user': vm.user}];

reference.reference.comments.push(commentArray);
/// here you push an array (commentArray) into another array (comments)
// so reference.reference.comments will be [[{'text': comment, 'user': vm.user}]];

我会做一个可行的例子。

var comments = [];
var commentArray = [];

commentArray.push({
    'text': 'comment',
    'user': 'someuser'
});
console.log('comments:', comments);
console.log('commentArray:', commentArray);

comments.push(commentArray);
console.log('comments:', comments);
console.log('commentArray:', commentArray);

因此,您不应创建中间数组。您应该只创建对象。像这样:

var comment = {
    'text': comment,
    'user': vm.user
};

reference.reference.comments.push(comment);

或更直接地像这样:

reference.reference.comments.push({
    'text': comment,
    'user': vm.user
});

答案 1 :(得分:0)

尝试此操作,您想将单个注释推入comment数组,而不是将数组推入数组。

var comment = {
    'text': comment,
    'user': vm.user
};

reference.reference.comments.push(comment);