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

JavaScript将对象数组添加到特定键

JavaScript将对象数组添加到特定键,javascript,vue.js,Javascript,Vue.js,我正在努力使用Vue.js将对象数组添加到现有的对象数组中。 我实际上想做的是在另一个表单转发器中制作表单转发器。 我成功地做了第一个没有问题,但是第二个让我非常紧张 我尝试了拼接和推送功能,但没有按预期工作 这是第一个表单转发器的函数(它正在工作) 顺便说一句:父项定义为处于状态的数组 addParent: function () { this.form.parent.push({ name: '', ag

我正在努力使用Vue.js将对象数组添加到现有的对象数组中。 我实际上想做的是在另一个表单转发器中制作表单转发器。 我成功地做了第一个没有问题,但是第二个让我非常紧张

我尝试了拼接和推送功能,但没有按预期工作

这是第一个表单转发器的函数(它正在工作)

顺便说一句:父项定义为处于状态的数组

addParent: function () {
            this.form.parent.push({
                name: '',
                age: '',
            });
        },
因此,输出如下所示:

parent: [
            {
                name: 'My name',
                age: 32,
            }
        ]
因此,在这个对象中,我需要添加一个子对象,如下所示:

parent: [
            {
                name: 'My name',
                age: 32,
                child: [
                    {
                        name: 'My children',
                        school: 'Elementary'
                    }
                ]
            }
        ]
我试着这样做:

addChildren: function (index) {
            this.form.parent.splice([index], 0, {
                child: {
                    name: '',
                    school: '',
                }
            });
        },
由于某种原因,它无法工作,它添加了新的父数组和子数组的对象。 这是我尝试的另一种方式:

addChildrenSecoundTry: function (index) {
            var dd = [];
            dd[index] = {
                    child: {
                      name: '',
                      school: '',
                  }
                };

            this.form.packages.splice([index], 0, dd);

        },
但是没有成功

我尝试了push,从父级传递了一个密钥,但它总是给出一个错误,即push不是一个函数


下面是一个我为了更清晰地了解我的想法而制作的示例。

尝试在给定索引处使用新的(
子项
)扩展原始键

addChildren: function (index) {
            this.form.parent.splice(index, 1, {
                ...this.form.parent[index],
                child: {
                    name: '',
                    school: '',
                }
            });
        },

可以直接将数组/对象添加到父对象。我使用了一个三元键来检查“child”键是否存在,如果存在,则将对象推到该键上,否则创建一个新键,并将对象放入数组中

addChildren: function (index) { this.form.parent[index].child =
this.form.parent[index].child ? this.form.parent[index].child.push({name: '',
school: '',}) : [ {name: '', school: '',} ], } }); },