【问题标题】:Replace for loop with linq using any使用 any 用 linq 替换 for 循环
【发布时间】:2021-08-03 15:53:45
【问题描述】:

我在打字稿中有以下代码:

public executeTest(test: Test): void {
    const testFilters: Record<string> = getTestFilters();
    let isTestingRequired: boolean = false;
    
    for (let i: number = 0; i < testFilters.length; i++) {
        if(test.Name === testFilters[i].Name){
            isTestingRequired = true;
            break;
        }
    }
}

我正在尝试使用 LINQ 替换上面的 for 循环,如下所示,但是我遇到了错误。

let isTestingRequired: boolean = testFilters.any((filter.): boolean => {
    return filter.Name  === test.Name 
});

【问题讨论】:

  • testFilters.some(filter =&gt; filter.Name === test.Name)

标签: javascript typescript linq lambda any


【解决方案1】:

您需要先使用Enumerable.from() 使您的array 可枚举,如下所示:

var array = [{name: "John"}, {name: "Test"}];

var result = Enumerable.from(array)
  .any(obj => obj.name == "Test");

console.log(result)
&lt;script src="https://cdnjs.cloudflare.com/ajax/libs/linq.js/3.2.4/linq.min.js"&gt;&lt;/script&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-04
    • 2018-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-07-08
    • 1970-01-01
    相关资源
    最近更新 更多