Typescript数组函数遍历问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Typescript数组函数遍历问题相关的知识,希望对你有一定的参考价值。

我的程序有一个检查很多条件的地方。

与编写一个大的if(conditionOne || conditionTwo || ...)类型的表达式相反,我决定定义一个像这样的过滤器数组:

const filters: Array<(err: MyError) => boolean> = [
      (e: MyError) => e.checkSomething(),
      (e: MyError) => e.checkSomethingElse,
      (e: MyError) => e.checkSomethingYetAgain()
    ];

然后我像这样遍历它:

for (const key in filters) {
      if (filters[key](err)) {
        return true;
      }
    }
return false;

我觉得有更多功能性的表达方式(从现在开始,在我看来,这看起来太必要了),但我不确定它的外观。谢谢!

答案

也许与find

function makeErrorFilter(filters: Array<(err: MyError) => boolean>) {
  return (err: MyError) => !!filters.find(filter => filter(err));
}

const errorFilter = makeErrorFilter([
  (e: MyError) => e.checkSomething(),
  (e: MyError) => e.checkSomethingElse,
  (e: MyError) => e.checkSomethingYetAgain()
]);

以上是关于Typescript数组函数遍历问题的主要内容,如果未能解决你的问题,请参考以下文章

盘点 TypeScript 的基础认识 二

盘点 TypeScript 的基础认识 二

关于数组的一些经常使用函数

TypeScript:各种遍历数组的方法与执行时间

15TypeScript-函数

js数组遍历方法总结