合并操作

合并操作分为concatconcatMap两种。前者就是将多个数组合成一个,后者则是先处理一下参数,然后再将处理结果合成一个数组。

  1. f.concat([5], [27], [3]) // [5, 27, 3]
  2. f.concatMap(x => 'hi ' + x, 1, [[2]], 3) // ['hi 1', 'hi 2', 'hi 3']

这两种方法的实现代码如下。

  1. let f = {};
  2. f.concat =
  3. (...xs) => xs.reduce((a, b) => a.concat(b));
  4. f.concatMap =
  5. (f, ...xs) => f.concat(xs.map(f));