其他分享
首页 > 其他分享> > 前端工作日志 5.20 ————flatMap 与 map 方法

前端工作日志 5.20 ————flatMap 与 map 方法

作者:互联网

昨晚老大发了一个这个:

同学们 今天看到一段代码 :差不多是这个意思 有啥更简单的写法吗

 

答案是flat和flatMap:

flatMap 能用于在map期间增删项目(也就是修改items的数量)。

换句话说,它允许你遍历很多项使之成为另一些项(靠分别把它们放进去来处理),而不是总是一对一。

 从这个意义上讲,它的作用类似于 filter的对立面。只需返回一个1项元素数组以保留该项,返回一个多元素数组以添加项,或返回一个0项元素数组以删除该项。

例子:

把下面数组里的数,解析成,如果是负数就去掉,如果是奇数就变成对等的偶数+1,偶数不变【我们可以发现flatMap可以完美的实现】————

// Let's say we want to remove all the negative numbers and split the odd numbers into an even number and a 1
let a = [5, 4, -3, 20, 17, -33, -4, 18]
//       |\  \  x   |  | \   x   x   |
//      [4,1, 4,   20, 16, 1,       18]

a.flatMap( (n) =>
  (n < 0) ?      [] :
  (n % 2 == 0) ? [n] :
                 [n-1, 1]
)

// expected output: [4, 1, 4, 20, 16, 1, 18]

记住这个demo 很管用 

标签:map,flatMap,20,16,18,numbers,数组,5.20
来源: https://blog.csdn.net/zhongheng310/article/details/117067806