在 ES9 中,新增了 Array.flatMap 方法,它可以将一个数组映射成另一个数组,并且可以将映射后的数组扁平化。
什么是 Array.flatMap 方法
Array.flatMap 方法是一个组合方法,它将数组映射成另一个数组,并且可以将映射后的数组扁平化。它的语法如下:
array.flatMap(callback(currentValue[, index[, array]])[, thisArg])
其中,callback 函数接收三个参数:
- currentValue:当前元素的值。
- index:当前元素的索引。
- array:调用 flatMap 方法的数组。
callback 函数必须返回一个新数组,这个新数组会被扁平化,最终返回一个新的、扁平化后的数组。
Array.flatMap 方法的优势
Array.flatMap 方法的优势在于它可以链式调用,而不需要使用嵌套的 map 和 flat 方法。例如,我们可以使用 Array.flatMap 方法来将一个二维数组扁平化:
const arr = [[1, 2], [3, 4], [5, 6]]; const flatArr = arr.flatMap((item) => item); console.log(flatArr); // [1, 2, 3, 4, 5, 6]
使用 Array.flatMap 方法可以使代码更加简洁和易于阅读。
另外,Array.flatMap 方法还可以在映射后的数组中过滤掉空值。例如,我们可以使用 Array.flatMap 方法来将一组字符串分割成单词,并过滤掉空值:
const strArr = ['hello world', 'this is a test', '']; const wordArr = strArr.flatMap((str) => str.split(' ')).filter((word) => word !== ''); console.log(wordArr); // ['hello', 'world', 'this', 'is', 'a', 'test']
在上面的例子中,我们首先使用 Array.flatMap 方法将字符串分割成单词,然后使用 Array.filter 方法过滤掉空值。
总结
Array.flatMap 方法是一个非常实用的方法,它可以将一个数组映射成另一个数组,并且可以将映射后的数组扁平化。使用 Array.flatMap 方法可以使代码更加简洁和易于阅读。在实际开发中,我们可以使用 Array.flatMap 方法来处理各种数组操作,例如将二维数组扁平化、将字符串分割成单词等等。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655ffc62d2f5e1655da282f0