在JS中flat() 和 flatMap()使用解说

打印 上一主题 下一主题

主题 664|帖子 664|积分 1992

flat()flatMap() 是 JavaScript 中处理数组的两个方法,用于处理嵌套数组,但它们有不同的用途和效果。以下是它们的详细区别:
1. Array.prototype.flat()



  • 功能:将嵌套的数组“拉平”成一维数组。
  • 语法:
    1. array.flat([depth])
    复制代码
  • depth:可选参数,表现要拉平的深度。默认值是 1。
  • 示例:
    1. const arr = [1, [2, [3, [4]]]];
    2. console.log(arr.flat());          // [1, 2, [3, [4]]]
    3. console.log(arr.flat(2));         // [1, 2, 3, [4]]
    4. console.log(arr.flat(3));         // [1, 2, 3, 4]
    复制代码
  • 阐明: flat() 只负责将数组拉平,并不会对数组中的元素举行处理。它简朴地将嵌套层次减少到指定的深度。
2. Array.prototype.flatMap()



  • 功能:对数组中的每个元素应用一个函数,然后将结果“拉平”成一维数组。
  • 语法
    1. array.flatMap(callback[, thisArg])
    复制代码
  • callback:一个函数,用于处理数组中的每个元素,并返回一个数组。
  • thisArg:可选参数,指定 callback 中 this 的值。
  • 示例:
    1. const arr = [1, 2, 3, 4];
    2. const result = arr.flatMap(x => [x, x * 2]);
    3. console.log(result);  // [1, 2, 2, 4, 3, 6, 4, 8]
    复制代码
  • 阐明: flatMap() 先对每个元素实行 callback 函数,然后将所有返回的数组“拉平”到一维。它常用于需要对数组元素举行映射,并将结果扁平化的场景。
对比总结


  • flat():将嵌套的数组按指定深度拉平,主要用于调解数组的层次布局。
  • flatMap():对每个元素应用一个映射函数,返回的数组会被“拉平”,常用于将嵌套的结果归并成一个平面数组。
实际使用场景


  • flat():当你有多层嵌套数组,并且只想简朴地减少嵌套深度时使用。
  • flatMap():当你需要对数组中的元素举行映射操作,并将结果归并成一个平面数组时使用。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

守听

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表