Ire Aderinokun 撰写了一篇使用循环的巧妙文章,以及我们何时可以考虑用其他方法替换它,例如 .map()
和 .filter()
。我特别喜欢她在这里所说的内容
正如我之前提到的,循环在很多情况下都是一个很棒的工具,这些新方法的存在并不意味着循环不应该被完全使用。
我认为这些方法很棒,因为它们提供的代码在某种程度上是自文档化的。当我们使用 filter() 方法而不是 for 循环时,更容易一目了然地理解逻辑的用途。
但是,这些方法有非常具体的用例,如果它们的全部价值没有被使用,可能会过度使用。例如 map() 方法,它在技术上可以用来替换几乎任何任意循环。如果在我们的第一个示例中,我们只想修改原始的 articles 数组,而不是创建一个新的、修改后的、amazingArticles,那么使用此方法将是不必要的。重要的是使用适合每个场景的方法,以确保我们不会过度或不足。
如果您有兴趣更深入地研究这个主题,Adan Giese 之前写过一篇关于 .filter()
方法的 很棒的文章,绝对值得一看。哦,说到处理循环的多种不同方法,Chris 编译了一个遍历 querySelectorAll
NodeLists 的选项列表,其中 forEach
只是众多选项之一。