forEach()方法
1、forEach()返回undefined
2、不支持链式调用,forEach性能会好一些,因为不用分配内存空间存储新数组并返回
3、除了抛出异常throw 以外,没有办法中止或跳出(break,continue,return)循环
map方法
1、返回是一个等长的全新的数组
2、支持链式调用,forEach性能会好一些
3、除了抛出异常throw 以外,没有办法中止或跳出(break,continue,return)循环
flatMap方法
把数组流中的每一个值,使用所提供的函数执行一遍,一一对应。得到元素相同的数组流。
只不过,里面的元素也是一个子数组流。把这些子数组concat合并成一个数组以后,元素个数大概率会和原数组流的个数不同
例如
let a = [5, 4, -3, 20, 17, -33, -4, 18]
a.flatMap( (n) =>
(n < 0) ? [] :
(n % 2 == 0) ? [n] :
[n-1, 1]
)
// expected output: [4, 1, 4, 20, 16, 1, 18]