[英]How to create array of objects dynamically in Angular 11?
我正在尝试在 Angular 中动态创建对象数组。 我有这段代码:
data:{title:any,date:any};
arr:any=[]
this.service.calendarBooking().subscribe((res: any) => {
for (let i = 0; i < res.data.length; i++) {
// Creating object from API Response
this.data={title:res.data[i].name,date:res.data[i].date}
// Pushing object to array
this.arr.push(this.data)
}
})
当我打印数组时,数组响应如下:
0: {title: "spss", date: "2021-01-30"}
1: {title: "spss", date: "2021-01-29"}
2: {title: "spss", date: "2021-01-28"}
但是当我试图访问索引(arr [0],arr [1])时,响应是未定义的,arr的长度为零如何解决这个问题“?
this.arr 是不同的,你在 data:{title:any,date:any}; 下写了 arr 是不同的,
将其推送到 arr.push(this.data) 或访问类似 (this.arr[0], this.arr[1])
首先,如果您得到预期的结果,则在 for 循环之后打印数组,那么问题出在回调上,因此请执行异步等待调用,该调用将等待系统直到收到响应或错误。
如果在 for 循环后没有打印数据,则输入数组变量。 这就是你可以输入它的方式。 arr: 数组 = [{}];
检查如下
this.service.calendarBooking().subscribe((res: any) => {
for (let i = 0; i < res.data.length; i++) {
//this.data={title:res.data[i].name,date:res.data[i].date}
// Pushing object to array
this.arr.push({
title: res.data[i].name,
date:res.data[i].date
});
}
console.log(this.arr,this.arr[1]);
});
我想这会对你有所帮助
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.