JavaScript 是一种动态的、基于对象的编程语言,是现代 Web 应用程序的基础。在前端开发中,处理数组是非常常见的任务。ES7 中的 Array.prototype.flat() 和 flatMap() 方法可以帮助我们更轻松地处理数组。
Array.prototype.flat() 方法
Array.prototype.flat() 方法用于将嵌套的数组“扁平化”,即将多维数组转换为一维数组。这个方法接收一个可选的参数,表示要扁平化的深度。如果不传参数,默认深度为 1。
语法
array.flat([depth])
参数
depth
:可选,表示要扁平化的深度。默认为 1。
返回值
返回一个新数组,其中包含原数组中的所有元素,但已经扁平化成一维数组。
示例
const arr1 = [1, 2, [3, 4]]; console.log(arr1.flat()); // [1, 2, 3, 4] const arr2 = [1, 2, [3, [4, 5]]]; console.log(arr2.flat()); // [1, 2, 3, [4, 5]] const arr3 = [1, 2, [3, [4, 5]]]; console.log(arr3.flat(2)); // [1, 2, 3, 4, 5]
Array.prototype.flatMap() 方法
Array.prototype.flatMap() 方法是 ES7 新增的方法,它结合了 map() 和 flat() 两个方法的功能。flatMap() 方法先对数组中的每个元素执行一个映射函数,然后将结果“扁平化”成一维数组。这个方法也接收一个可选的参数,表示要扁平化的深度。
语法
array.flatMap(callback[, thisArg])
参数
callback
:必须,一个回调函数,用于对数组中的每个元素进行操作。thisArg
:可选,执行回调函数时 this 的值。
返回值
返回一个新数组,其中包含原数组中的所有元素,但已经被映射并扁平化成一维数组。
示例
const arr1 = [1, 2, 3]; console.log(arr1.flatMap(x => [x * 2])); // [2, 4, 6] const arr2 = ["hello", "world", "how", "are", "you"]; console.log(arr2.flatMap(x => x.split(""))); // ["h", "e", "l", "l", "o", "w", "o", "r", "l", "d", "h", "o", "w", "a", "r", "e", "y", "o", "u"]
总结
Array.prototype.flat() 和 flatMap() 方法可以帮助我们更轻松地处理数组,尤其是在处理多维数组时。在实际开发中,我们可以结合这两个方法,快速地完成数组的操作,提高开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65742206d2f5e1655dd623e5