c# - TypeScript 中是否有类似于 C# 实现的 foreach 构造?

标签 c# angular typescript foreach collections

我非常喜欢在 C# 中为“for 循环”使用 foreach 结构。我认为它非常干净、高效且可读。

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();        
}

最佳答案

是的,for ... of

例如

for(let author of authors)
{ 
  ... 
}

因为您使用的是 TypeScript,所以这在 IE 中也适用。 参见 https://basarat.gitbooks.io/typescript/content/docs/for...of.html :

For pre ES6 targets TypeScript will generate the standard for (var i = 0; i < list.length; i++) kind of loop.

在普通的 Javascript 中,如果没有 Typescript,这在 IE 中不受支持(source)

更新:对于作用域,letvar 更类似于 C#。更新了示例。

关于c# - TypeScript 中是否有类似于 C# 实现的 foreach 构造?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46569617/

相关文章:

C# 等效 HGlobal Pascal

javascript - Vuex TypeScript 不更新 String,而是更新 Array

javascript - Angular2 嵌套 formGroups - formArrays 和模板绑定(bind)

angular - *ngFor 可观察对象的迭代。过滤 onInput 应该是可能的。如何?

angular - 如何测试子组件@output

javascript - Azure CORS 问题上托管的 Angular 4 前端

javascript - ReactJs 自定义提交按钮组件不起作用

c# - 去方法声明的快捷键?

C# 在两个 Web 应用程序之间验证 Web 服务时出现问题

c# - 如何使用 C# 为所有表单创建通用函数?