在前端开发中,数组操作是十分常见的。ECMAScript 2018 (ES9)引入了 Array.prototype.flat
和 Array.prototype.flatMap
两个新方法,使数组操作更加高效和方便。本文将会对这两个方法进行详细介绍。
1. Array.prototype.flat
Array.prototype.flat()
方法可以将嵌套层级的数组“拍平”,即将嵌套的子数组转换为同一层级的元素。
1.1 语法
arr.flat([depth])
arr
表示要拍平的数组,depth
表示拍平的深度,默认值为 1。
1.2 示例
const arr = [[1, 2], [3, [4, 5]]]; console.log(arr.flat()); // [1, 2, 3, [4, 5]] console.log(arr.flat(2)); // [1, 2, 3, 4, 5]
上面的代码中,将 arr
进行了两次 flat
操作,第一次拍平一级,第二次拍平两级。
2. Array.prototype.flatMap
Array.prototype.flatMap()
方法可以同时对数组进行 map
和 flat
操作,将子数组映射成一个新数组后再拍平。
2.1 语法
arr.flatMap(callback[, thisArg])
callback
表示对数组每个元素执行的函数,类似于 Array.prototype.map
,不同的是它返回一个一维数组。同时 thisArg
可以传递作用域链中 this 的对象。
2.2 示例
const arr = [1, 2, 3]; const result = arr.flatMap(x => [x * 2]); console.log(result); // [2, 4, 6]
这里的 callback
函数将每个原数组元素乘以 2 并返回新数组,然后 flatMap
方法再将新数组拍平成一个一维数组。
3. 总结
在实际开发中,Array.prototype.flat
和 Array.prototype.flatMap
方法可以大大提高数组操作的效率和便捷性。通过本文的介绍和示例,相信读者已经掌握了这两个方法的使用方法及其指导意义。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6529286f7d4982a6ebbb4043