首页 > 解决方案 > 我们如何将静态对象数组推送到另一个对象数组中?

问题描述

我已经尝试了以下代码。学生由对象数组组成。当我在学生中添加一个新的对象数组时,它应该以表格格式显示。

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(students);

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"

标签: angular7

解决方案


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 的元素,并将其与 students 数组相等。

例如:

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];

推荐阅读