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]]
目录
相关文章
|
8月前
Array.from() 与 Array.reduce()
Array.from() 与 Array.reduce()
48 1
|
4月前
|
索引
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
ES5常见的数组方法:forEach ,map ,filter ,some ,every ,reduce (除了forEach,其他都有回调,都有return)
|
4月前
数组方法中的`forEach()`方法和`map()`方法有什么区别?
数组方法中的`forEach()`方法和`map()`方法有什么区别?
|
存储 测试技术 C++
map + function 实现替代if - else
代码更简洁:使用map + function可以将多个if-else语句转化为一行代码,使得代码看起来更加简洁易懂。 可读性更好:使用map + function可以将判断逻辑抽象成函数,让代码更具可读性和可维护性。
93 0
|
8月前
|
前端开发 JavaScript
你不知道的forEach函数
你不知道的forEach函数
|
前端开发 索引
Array.prototype.at
Array.prototype.at
88 0
|
JavaScript 开发者
ES6之Object.assign()用法,Object.assign()到底是浅拷贝还是深拷贝?
ES6之Object.assign()用法,Object.assign()到底是浅拷贝还是深拷贝?
9189 1
关于数组中forEach() 、map()、filter()、reduce()、some()、every()的总结
关于数组中forEach() 、map()、filter()、reduce()、some()、every()的总结
61 0
Array.prototype.concat
Array.prototype.concat
62 0
ES6常用数组方法总结(max,contant,some,every,filter,reduce,forEach,map)
1.求最大值(Math.max) 2.数组添加到另外一个数组的尾部(...扩展符) 3.复制数组 3.1数组直接赋值 3.2 es5通过concat方法进行克隆,不会影响原来数组 3.3 es6通过扩展字符串来实现克隆 4.用Object.keys清空对象的属性值 5.forEach,遍历数组,无返回值,不改变原数组 6.map遍历数组,返回新数组,不改变原数组 7.filter,过滤掉数组不符合条件的值,返回新数组,不改变原数组 8.reduce 9 some() 10.every
186 0
ES6常用数组方法总结(max,contant,some,every,filter,reduce,forEach,map)

热门文章

最新文章