在 TypeScript 中将对象推送到数组中

时间:2020-12-29 10:50:45

标签: arrays angular typescript

在我的 Angular 应用程序中,我将对象推送到这样的数组:

castPictures: any = []

this.castPictures.push({ actor: actor, url: actPics})  

我的问题是我无法通过它的索引访问任何项目:

console.log(this.castPictures[0])

返回 undefined

这样做的正确方法是什么?

这是我尝试重新创建代码的 TsPlayground:

TsPlayground

而且工作正常。

这是我的代码:

export class ActorQuestionComponent implements OnInit {
  @Input() quizedMovie;
  constructor(private searchActor: SearchActor) {}

  castPictures: any = []
  actors: any = []  

  ngOnInit(){
    this.actors = this.quizedMovie.cast.slice(0,5)    
    for (let i = 0; i < this.actors.length; i++) {     
      this.getActor(this.actors[i].actor)            
    }
    this.getActorUrl()
  }  
  
  getActor(actor: string) { this.searchActor.getActorImage(actor)       
                            .subscribe((r:any) => { let actPics = []                                                  
                                                    for (var val of r.value) {                                                  
                                                      actPics.push(val.thumbnailUrl)}                                                      
                                                    this.castPictures.push({ actor: actor, url: actPics})                                                    
                                                  })
  }

  getActorUrl() { for (let i = 0; i < this.actors.length; i++)  {
                  const result = this.castPictures.find( ({ actor }) => actor === this.actors[i].actor );
                  console.log(result)                                        
                }    

  }                                                                                                                    
                          
}

0 个答案:

没有答案