Array.prototype.flatMap()

简介: Array.prototype.flatMap()

MDN文档

flatMap() 方法首先使用映射函数映射每个元素,然后将结果压缩成一个新数组。它与 map 连着深度值为 1flat 几乎相同,但 flatMap 通常在合并成一种方法的效率稍微高一些。


语法:

var new_array = arr.flatMap(function callback(currentValue[, index[, array]]) {
    // return element for new_array
} [, thisArg])


参数:

  • callback可以生成一个新数组中的元素的函数,可以传入三个参数:
  • currentValue
    当前正在数组中处理的元素
  • index | 可选
    数组中正在处理的当前元素的索引
  • array | 可选
    被调用的 map 数组
  • thisArg | 可选
    执行 callback 函数时 使用的 this 值。


返回值:

一个新的数组,其中每个元素都是回调函数的结果,并且结构深度 depth 值为 1


示例:

const arr1 = [1, 2, 3, 4];
arr1.map(x => [x * 2]); // [[2], [4], [6], [8]]
arr1.flatMap(x => [x * 2]); // [2, 4, 6, 8]
// 只能展开一级
arr1.flatMap(x => [
    [x * 2]
]); // [[2], [4], [6], [8]]
目录
相关文章
|
6月前
Array.from() 与 Array.reduce()
Array.from() 与 Array.reduce()
43 1
|
2月前
|
索引
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
|
2月前
数组方法中的`forEach()`方法和`map()`方法有什么区别?
数组方法中的`forEach()`方法和`map()`方法有什么区别?
|
6月前
实现array.slice()方法
实现array.slice()方法
|
6月前
Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别以及优缺点
Object.prototype.toString.call() 和 instanceOf 和 Array.isArray() 区别以及优缺点
53 0
|
6月前
|
JavaScript 前端开发
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
JavaScript中Object.prototype.toString.call()、instanceOf和Array.isArray()的区别
79 1
|
前端开发 索引
Array.prototype.at
Array.prototype.at
83 0
Array.prototype.concat
Array.prototype.concat
56 0
|
索引
Array.forEach()
Array.forEach()
83 0
|
JavaScript
Object.prototype.toString.call()的原理
Object.prototype.toString.call()的原理
Object.prototype.toString.call()的原理