在打字稿中迭代数组

fre*_*ree 4 arrays loops typescript angular

我想迭代对象数组并在打字稿中访问该迭代对象的属性值。

在 C# 中执行此操作,只需通过数组执行 foreach 即可。

在打字稿中,这似乎有点不同。我们可以执行 foreach,但我们无法访问“完整”对象,该怎么办?

@Input() gridDefinitions: GridColumnDefinition[]   
 public test() {
     for (var def **in** this.gridDefinitions){
       var test = <GridColumnDefinition>this.selectedObject;
       let castedtype = <GridColumnDefinition>def; // this gives an error
    }  
 }
Run Code Online (Sandbox Code Playgroud)

更新:我刚刚遇到了解决方案。问题在于如何迭代集合。当使用of代替in时,我们可以访问迭代对象。请参阅TypeScript for-in 语句

Tit*_*mir 6

for...in 构造迭代对象的键。要迭代数组中的项目,您需要使用for..of

for (var def of this.gridDefinitions){ // def is of the array item type no casting necessary 
    var test = <GridColumnDefinition>this.selectedObject;
} 
Run Code Online (Sandbox Code Playgroud)

如果您愿意,您还可以使用forEach//等数组方法以类似的方式处理数组。mapreduceLINQ