each 和 map 的选择

Each的语义是我要为数组中的每个元素做点什么

Map的语义是我要根据原始数组生成一个新的数组

使用map 最重要的一个准则就是新数组中的每一个元素,都必须和原始数组中的元素有$func定义的关联关系。如果需要的结果无法保证这个准则,那么即使你可以通过map得到正确的结果,你写出来的代码也一定会有语义上的问题。

当你需要遍历数组中的元素并进行一些操作时,你应该认真分析下你要执行的任务,在eachmap之间做出正确的选择。

在这里,有一些选择的建议可以参考。在下面这些情形时,你总应该使用each而不是map

  1. 你的回调函数不返回任何值;
  2. 你没有处理map的返回结果;
  3. 你仅仅希望对数组中的元素执行一些动作;

去理解下这3条准则,你就能彻底理解eachmap的用法了。

【摘自:https://www.boxueio.com/series/do-not-loop-again/ebook/102】