我们如何将静态对象数组推入另一个对象数组?

时间:2019-10-21 11:08:40

标签: angular7

我尝试了以下代码。 学生由一系列对象组成。 当我在学生内部添加新的对象数组时,应以表格格式显示。

var newArraypush = [{
            Id: 1010,
            Name : "herfr",
            Course : "Aeronautical Engineering",
            Age : 65,
            Gender: "Male"
            },
            {
            Id: 1011,
            Name : "rfrsfd",
            Course : "ISIS",
            Age : 40,
            Gender: "Male"
            }];
    this.students.push(newArraypush);

实际输出:-

0: {Id: 1005, Name: "ggtge", Course: "M.Phil", Age: 34, Gender: "Male"}
1: Array(2)
    0: {Id: 1010, Name: "herfr", Course: "Aeronautical Engineering", 
        Age: 65, Gender: "Male"}
    1: {Id: 1011, Name: "rfrsfd", Course: "IIT", Age: 50, Gender: 
       "Male"

预期输出:- console.log(学生);

0: {Id: 1005, Name: "ggtge", Course: "M.Phil", Age: 34, Gender: "Male"}
1: {Id: 1010, Name: "herfr", Course: "Aeronautical Engineering", 
     Age: 65, Gender: "Male"}
2: {Id: 1011, Name: "rfrsfd", Course: "IIT", Age: 50, Gender: 
    "Male"

1 个答案:

答案 0 :(得分:0)

Array.push只是向数组添加一个新元素。在您的示例中,您尝试合并两个数组。基于Array.push的定义不能直接执行。 在es6中有许多合并数组的方法。

第一个使用Array.push,但是必须将数组的元素作为参数。

this.students.push([...newArraypush]);

第二种方法是使用concat

this.students = this.students.concat(newArraypush);

最后一个就是这样

this.students = [...this.students, ...newArraypush];

此方法已在ES6中声明,要了解此类型,您需要了解以下内容

  

我们知道,this.students表示基于您的示例的任何数组

     

如果我们使用[... this.students],则表示学生数组的对象。

然后,通过第三种方式,我们创建一个新数组,其中包含studens数组的元素和newArraypush的元素,并将其均衡为学生数组。

例如:

const a = [1,2,3];
const b = [4,5,6];
const c = [...a, ...b];
console.log(c) -> [1,2,3,4,5,6]
const d = [...a, ...b, 7,8,9,10];
console.log(d) -> [1,2,3,4,5,6,7,8,9,10];