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(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"
解决方案
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];
推荐阅读
- google-app-engine - Google 应用引擎请求标头中 X-AppEngine-TaskRetryReason 标头的可能值是什么?
- django - 配置文件未更新或更新未显示在 django 中
- java - Rascal 模块未链接到 Java 类
- bash - 预签名 AWS S3 文件
- c# - 如何在 Asp.Net MVC 中获取 Count() 的平均值
- airflow - 如何选择 Apache Airflow 调度程序更新 DAG 的频率?
- reactjs - 图像未在 React JS 中加载
- log4j - flink 1.11.3 中是否有任何配置来管理或归档文件?
- java - 如何使用 Maven 和系统依赖项创建可执行 jar?
- python - 从列表创建数据框