在 ES9 中,JavaScript 添加了两个新的数组方法:Array.flat()
和 Array.flatMap()
。这两个方法可以极大地简化数组的操作,特别是在处理嵌套数组时。在本文中,我们将深入了解这两个方法的用法和实际应用。
Array.flat()
Array.flat()
方法可以将一个嵌套的数组展开为一个单层的数组。这个方法可以接受一个可选的参数,表示要展开的嵌套层数,默认值为 1。如果你需要展开多层嵌套数组,可以传递一个大于 1 的数字作为参数。
下面是一个简单的例子,展示了如何使用 Array.flat()
方法将一个嵌套的数组展开为一个单层的数组:
const nestedArray = [1, 2, [3, 4, [5, 6]]]; const flattenedArray = nestedArray.flat(); console.log(flattenedArray); // [1, 2, 3, 4, [5, 6]]
在上面的例子中,我们使用 Array.flat()
方法将 nestedArray
展开为一个单层的数组。注意,最后一个元素 [5, 6]
仍然是一个数组,因为我们没有传递任何参数。如果我们传递参数 2
,则所有嵌套层级都会被展开:
const nestedArray = [1, 2, [3, 4, [5, 6]]]; const flattenedArray = nestedArray.flat(2); console.log(flattenedArray); // [1, 2, 3, 4, 5, 6]
Array.flatMap()
Array.flatMap()
方法是 Array.map()
和 Array.flat()
方法的组合。它首先对数组中的每个元素执行一个映射函数,然后将结果展开为一个单层的数组。这个方法也可以接受一个可选的参数,表示要展开的嵌套层数,默认值为 1。
下面是一个简单的例子,展示了如何使用 Array.flatMap()
方法将一个数组中的每个元素加倍,并将结果展开为一个单层的数组:
const array = [1, 2, 3]; const doubledArray = array.flatMap(x => [x * 2]); console.log(doubledArray); // [2, 4, 6]
在上面的例子中,我们使用 Array.flatMap()
方法将 array
中的每个元素加倍,并将结果展开为一个单层的数组。注意,我们将每个元素的加倍结果包装在一个数组中,这是因为 Array.flatMap()
方法需要返回一个数组,而不是一个单独的值。
总结
在本文中,我们学习了 ES9 中的两个新的数组方法:Array.flat()
和 Array.flatMap()
。这两个方法可以极大地简化数组的操作,特别是在处理嵌套数组时。Array.flat()
方法可以将一个嵌套的数组展开为一个单层的数组,而 Array.flatMap()
方法可以对数组中的每个元素执行一个映射函数,并将结果展开为一个单层的数组。这两个方法的使用非常简单,但在实际应用中非常有用。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/660f18a3d10417a222f84ff6