【循环系列】关于flat和flatMap

261 阅读1分钟

小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。

前言

发现JS中的循环有好多,如果让一下说出来,感觉有些会想不起来,本次花时间来梳理一下JS中循环语句。

本系列相关文章:

  1. 【循环系列】for循环和while循环
  2. 【循环系列】for in和forEach循环
  3. 【循环系列】之map循环
  4. 【循环系列】filter和some循环
  5. 【循环系列】every循环
  6. 【循环系列】reduce循环
  7. 【循环系列】reduceRight循环
  8. 【循环系列】for of和find以及findIndex
  9. 【循环系列】includes和keys、values、entries 本文是本系列第10篇,关于flat和flatMap

flat(num/Infinity)

flat用于“拍平”多维数组。该方法返回一个新数组,对原数据没有影响。参数表示嵌套层数,例如以下代码:

let arr = [1,2,3,[4,5,[6,7]]]
let res = arr.flat(Infinity)
console.log(res)//[1,2,3,4,5,6,7]

如上代码,最终将res的结果相当于是arr多维数组拍平的结果

flatMap()

flatMap接受一个函数作为参数,返回一个新的数组,其中每个元素都是回调函数的结果,并且结构深度 depth 值为1。例如一下代码:

var arr1 = [1, 2, 3, 4];
console.log(arr1.flatMap(x => [x * 2]));
// [2, 4, 6, 8]
console.log(arr1.flatMap(x => [[x * 2]]));
// [[2], [4], [6], [8]]

结束

以上就是flat和flatMap循环的相关内容