我写了这段代码来过滤一系列单词.我为我要过滤的每种类型的单词写了一个过滤函数,并将它们顺序应用到数组中:
const wordArray = rawArray.filter(removeNonDomainWords)
.filter(removeWordsWithDigits)
.filter(removeWordsWithInsideNonWordChars)
.filter(removeEmptyWords)
.filter(removeSearchTerm, term)
.map(word => replaceNonWordCharsFromStartAndEnd(word))
Run Code Online (Sandbox Code Playgroud)
如果我没有弄错的话,这段代码将遍历整个数组六次.
编写一个(在我的场景中更复杂,但仍然很容易)过滤器功能,在逻辑上组合过滤器功能以实现相同的结果,是不是更有效率?
我在功能编程的上下文中学习了过滤器,它应该使我的代码更短更快.这就是为什么我可能没有质疑我在写什么,想着'我在做FP,这一定要好'.
谢谢!