ECMAScript 2018 引入了两个新的 Array 方法:Array.prototype.flat() 和 Array.prototype.flatMap()。这两个方法都是对数组进行操作的,它们可以让我们更加方便地操作数组。
Array.prototype.flat()
Array.prototype.flat() 方法可以将一个多维数组变成一个一维数组。它接受一个参数,表示要将数组展开的层数。如果不传参数,则默认展开一层。
语法
arr.flat([depth]);
参数
depth
:可选,表示要将数组展开的层数,默认为 1。
示例
const arr = [1, 2, [3, 4, [5, 6]]]; arr.flat(); // [1, 2, 3, 4, [5, 6]] arr.flat(2); // [1, 2, 3, 4, 5, 6]
Array.prototype.flatMap()
Array.prototype.flatMap() 方法可以将一个数组中的每个元素都执行一次回调函数,并将回调函数的返回值组成一个新的数组。它与 Array.prototype.map() 很像,但是它会自动将返回的数组展开成一个一维数组。
语法
arr.flatMap(callback);
参数
callback
:必须,表示对每个元素执行的回调函数,它可以返回一个数组,这个数组会被自动展开成一个一维数组。
示例
const arr = [1, 2, 3]; arr.flatMap(x => [x * 2]); // [2, 4, 6]
总结
Array.prototype.flat() 和 Array.prototype.flatMap() 是 ECMAScript 2018 引入的两个新的 Array 方法。它们都可以让我们更加方便地操作数组。Array.prototype.flat() 可以将一个多维数组变成一个一维数组,而 Array.prototype.flatMap() 可以将一个数组中的每个元素都执行一次回调函数,并将回调函数的返回值组成一个新的数组。这两个方法在实际开发中都有很多用处,可以让我们的代码更加简洁、高效。
参考文献
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65cf5041add4f0e0ff899227