如何解决如何在 Angular 11 中动态创建对象数组?
我正在尝试在 Angular 中动态创建对象数组。我有这段代码:
LNK2001
当我打印数组时,数组响应如下:
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)
}
})
但是当我尝试访问索引(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]);
});
我认为这对你有帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。