在 JavaScript 的 ES10 版本中,新增了两个 Array 原型方法,它们分别是 flat
和 flatMap
。这两个方法可以帮助我们更加方便地操作数组,提高代码的可读性和效率。
Array.prototype.flat
flat
方法用于将多维数组扁平化为一维数组。它的语法如下:
-----------------
其中,arr
是需要扁平化的数组,depth
是可选参数,表示扁平化的深度,默认值为 1。
如果数组中存在多维数组,flat
方法会将它们展开成一维数组。例如:
----- --- - --- --- --- --- --- ----- ----- ------- - ----------- --------------------- -- --- -- -- -- --- ---
如果我们将 depth
设置为 2,则会将嵌套在数组中的数组也扁平化:
----- --- - --- --- --- --- --- ----- ----- ------- - ------------ --------------------- -- --- -- -- -- -- --
需要注意的是,flat
方法会移除数组中的空项,例如:
----- --- - --- - --- --- - --- --- ----- ----- ------- - ----------- --------------------- -- --- -- -- -- --- ---
Array.prototype.flatMap
flatMap
方法是 map
和 flat
方法的组合,它的语法如下:
---------------------- ---------
其中,arr
是需要操作的数组,callback
是回调函数,用于对数组进行操作,thisArg
是可选参数,表示回调函数中的 this
值。
flatMap
方法会先对数组进行 map
操作,然后再对结果进行一次扁平化操作。例如:
----- --- - --- -- --- ----- ---------- - ---------------- -- ----- - ---- ------------------------ -- --- -- --
在上面的例子中,我们使用 flatMap
对数组进行了一次 map
操作,并将每个元素都乘以 2,然后再将结果扁平化为一维数组。
需要注意的是,flatMap
方法会自动移除数组中的空项,例如:
----- --- - --- -- --- ----- ---------- - ---------------- -- ------ - ---- - ---- ------------------------ -- --- -- -- -- -- --
总结
ES10 中新增的 flat
和 flatMap
方法可以帮助我们更加方便地操作数组,提高代码的可读性和效率。需要注意的是,flat
方法会移除数组中的空项,而 flatMap
方法会自动移除数组中的空项。
在实际开发中,我们可以根据具体的需求选择使用这两个方法。例如,如果我们需要将多维数组扁平化为一维数组,可以使用 flat
方法;如果我们需要对数组进行一次 map
操作并将结果扁平化,可以使用 flatMap
方法。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65631fdfd2f5e1655dcce345