11. Iterators & Generators
最后更新于:2022-04-01 21:12:22
* [11.1](https://github.com/yuche/javascript#11.1) 不要使用 iterators。使用高阶函数例如 `map()` 和 `reduce()` 替代 `for-of`。
> 为什么?这加强了我们不变的规则。处理纯函数的回调值更易读,这比它带来的副作用更重要。
~~~
const numbers = [1, 2, 3, 4, 5];
// bad
let sum = 0;
for (let num of numbers) {
sum += num;
}
sum === 15;
// good
let sum = 0;
numbers.forEach((num) => sum += num);
sum === 15;
// best (use the functional force)
const sum = numbers.reduce((total, num) => total + num, 0);
sum === 15;
~~~
* [11.2](https://github.com/yuche/javascript#11.2) 现在还不要使用 generators。
> 为什么?因为它们现在还没法很好地编译到 ES5。
';