Map 作用是生成一个新数组,遍历原数组,将每个元素拿出来做一些变换然后 append 到新的数组中。

[1, 2, 3].map((v) => v + 1)
// -> [2, 3, 4]

Map 有三个参数,分别是当前索引元素,索引,原数组

['1','2','3'].map(parseInt)
// parseInt('1', 0) -> 1
// parseInt('2', 1) -> NaN
// parseInt('3', 2) -> NaN

FlatMap 和 map 的作用几乎是相同的,但是对于多维数组来说,会将原数组降维。可以将 FlatMap 看成是 map + flatten ,目前该函数在浏览器中还不支持。


[1, [2], 3].flatMap((v) => v + 1)
// -> [2, 3, 4]

如果想将一个多维数组彻底的降维,可以这样实现

const flattenDeep = (arr) => Array.isArray(arr)
? arr.reduce( (a, b) => [...a, ...flattenDeep(b)] , [])
: [arr] flattenDeep([1, [[2], [3, [4]], 5]])
Reduce 作用是数组中的值组合起来,最终得到一个值 function a() {
console.log(1);
} function b() {
console.log(2);
} [a, b].reduce((a, b) => a(b()))
// -> 2 1

参考资料:

前端进阶之道

最新文章

  1. Tokudb 参数优化
  2. ROW_NUMBER over (order by **)
  3. React Native版本升级的正确姿势
  4. Javascript 面向对象编程初探(一)--- 封装
  5. Android应用程序(APK)的编译打包过程
  6. hdu 1686 Oulipo KMP匹配次数统计
  7. ###学习《C++ Primer》- 2
  8. HDU2639[背包第K大]
  9. Chapter 1 First Sight——26
  10. storm遇到问题汇总
  11. 这一次带你彻底了解Cookie
  12. Java:使用匿名内部类在方法内部定义并启动线程
  13. JSP错误页面处理的两种方式
  14. Java 服务端监控方案(四. Java 篇)
  15. java基础语法2.
  16. Linux基础命令---iptables-save
  17. 自学Java第三个星期的总结
  18. TypeScript set get
  19. Spring 注解驱动(一)基本使用规则
  20. scala工程导入报错:scalatest_2.10-1.9.1.jar is cross-compiled with an incompatible version of Scala (2.10).

热门文章

  1. SQL Server 静默安装
  2. firewalld 实现nat 转发外网转发到内网 实现访问外网端口到内网
  3. Chrome与chromedriver.exe的版本对应
  4. flutter GridView 网格布局
  5. Spark ML 中 VectorIndexer, StringIndexer等用法(转载)
  6. SOD 框架
  7. Slf4j与log4j及log4j2、logbak的关系及使用方法
  8. Python3之内建模块itertools
  9. 【GStreamer开发】GStreamer基础教程03——动态pipeline
  10. python signal模块