我真的很喜欢使用foreach
构造来实现" for循环"在C#中。我认为它非常干净,高效且易读。
TypeScript中是否有类似的构造?例如,而不是:
setAuthorFilters(selectedAuthors)
{
selectedAuthors.forEach(x => this.setAuthorFilter(x));
this.updateUrl();
}
setAuthorFilter(selectedAuthor)
{
this.vm.SelectAuthors = this.vm.SelectAuthors.filter(x => x.id !== selectedAuthor.id);
this.vm.PreviousSelectedAuthors = this.vm.CurrentSelectedAuthors.slice();
this.vm.CurrentSelectedAuthors.push(selectedAuthor);
}
我想这样做:
setAuthorFilters(selectedAuthors)
{
foreach(var selectedAuthor in selectedAuthors)
{
this.vm.SelectAuthors = this.vm.SelectAuthors.filter(x => x.id !== selectedAuthor.id);
this.vm.PreviousSelectedAuthors = this.vm.CurrentSelectedAuthors.slice();
this.vm.CurrentSelectedAuthors.push(selectedAuthor);
}
this.updateUrl();
}
答案 0 :(得分:20)
是的,for ... of
E.g。
for(let author of authors)
{
...
}
因为您正在使用TypeScript,所以这也适用于IE。 见https://basarat.gitbooks.io/typescript/content/docs/for...of.html:
对于ES6之前的目标,TypeScript将为(var i = 0; i< list.length; i ++)类型的循环生成标准。
在简单的Javascript中,所以没有Typescript,IE(source)
不支持更新:与let
相比,范围var
更类似于C#。更新了示例。