在 JavaScript 中,flatMap()
是数组方法之一,它结合了 map()
和 flat()
两个方法的功能。它首先对数组中的每个元素执行一个映射操作,然后将映射结果数组“扁平化”成一个新的数组。换句话说,flatMap()
可以将嵌套的数组结构一并处理并展开。
基本语法如下:
const newArray = array.flatMap(function(element, index, array) {
// 在这里编写映射操作,返回一个数组
});
element
:当前遍历到的数组元素。index
:当前元素的索引。array
:原始数组。
示例:
const words = ['hello', 'world', 'from', 'openai'];
// 对每个单词进行分割,并将结果展开到一个新数组
const letters = words.flatMap(word => word.split(''));
console.log(letters); // ['h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd', 'f', 'r', 'o', 'm', 'o', 'p', 'e', 'n', 'a', 'i']
在这个示例中,flatMap()
方法首先对每个单词执行了 split('')
操作,将单词分割成字符数组,然后将所有这些字符数组展开到一个新的扁平数组。
需要注意的是,与 map()
不同,flatMap()
会自动移除返回数组中的空项,因此不需要额外的步骤来处理空项。
flatMap()
在处理嵌套数组结构时非常有用,它能够简化代码并减少中间步骤。