数组是前端开发中最常用的数据结构之一,但在实际开发中,我们经常会遇到一些数组操作的问题,比如将多维数组展开成一维数组,或者在操作数组时需要同时对每个元素做一些变换等。在 ES10 中,引入了 Array.flat() 和 Array.flatMap() 两个方法,可以方便地解决这些问题。
Array.flat()
Array.flat() 方法可以用来将多维数组展开成一维数组。例如,我们有一个二维数组 arr:
----- --- - ---- --- --- -- --- --- -- --- -----
我们想把它展开成一维数组,可以使用 flat() 方法:
----- ---- - ----------- ------------------ -- --- -- -- -- -- -- -- --- ---
默认情况下,flat() 方法只会展开一层,如果想要展开多层,可以指定展开的层数:
----- ---- - ------------ ------------------ -- --- -- -- -- -- -- -- -- --
如果数组中有空位,flat() 方法会将其删除:
----- ---- - --- -- - --- ----- ---- - ------------ ------------------ -- --- -- --
Array.flatMap()
Array.flatMap() 方法可以用来对每个数组元素同时做一些变换,并将结果合并成一个数组。例如,我们有一个数组 arr:
----- --- - --- -- ---
我们想对每个元素都乘以 2 并加上 1,可以使用 flatMap() 方法:
----- ---- - ------------- -- -- - - - ---- ------------------ -- --- -- --
flatMap() 方法的参数是一个函数,该函数接受当前元素、当前索引和原数组作为参数,并返回一个新的数组。返回的数组会被自动展开并合并成一个数组。如果返回的是一个空数组,则会自动过滤掉该元素。例如:
----- ---- - --- -- -- --- ----- ---- - -------------- -- - - - --- - - -- - ----- ------------------ -- --- --
总结
Array.flat() 和 Array.flatMap() 两个方法在实际开发中非常实用,可以让我们更加方便地处理数组操作。需要注意的是,这两个方法都是 ES10 新增的方法,在浏览器支持情况下可以直接使用,但需要注意是否需要进行兼容性处理。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64846c9f48841e989437a79c