Edit: 在我入职第三家公司的第一天,看到代码库里面一堆的 for 循环,内心有些崩溃,于是做了一次技术分享,展示怎样在代码中避免 for 循环。这篇文章是那次分享的总结。本文并不完美,其中递归的部分其实不应该在生产环境中用的。之所以写出来了,主要是受这篇文章影响 Rethinking JavaScript: Death of the For Loop 我这篇文章重点其实应该是怎样用 reduce 和其它高阶函数,至于这些高阶函数底层用的是 while 循环还是 for 循环,都不重要,我们可以不在乎这些细节。在实际写代码的时候,只要被允许,我都会尽量使用 Ramda。
一、用好 filter,map,和其它 ES6 新增的高阶遍历函数
问题一:
将数组中的 falsy 值去除
const arrContainsEmptyVal = [3, 4, 5, 2, 3, undefined, null, 0, ""];
答案:
const compact = arr => arr.filter(Boolean);
"如何在 JS 代码中消灭 for 循环[转]"继续阅读