ES10 中新增加了两个方法 Array.prototype.{flat,flatMap},这两个方法对于前端开发者来说具有重要的意义,可以让开发者更加高效地操作数组。
Array.prototype.flat
Array.prototype.flat() 方法可以将多维数组拉平为一维数组,它接受一个参数,表示要拉平的维度,默认值为 1。
示例代码:
----- --- - --- -- --- --- --- -- --- ----- ----- ------- - ----------- --------------------- -- --- -- -- -- -- -- --- ---
Array.prototype.flatMap
Array.prototype.flatMap() 方法可以在调用 map() 方法后链式调用一次 flat() 方法,它接受一个函数参数,这个函数返回的数组会被拉平为一维数组。
示例代码:
----- --- - --- -- --- ----- ---------- - ----------------- -- ---- - ---- ------------------------ -- --- -- --
使用技巧
数组去重
借助 Array.prototype.flat() 方法可以将一个多维数组拉平为一维数组,然后再借助 Set 内置对象可以实现数组去重的操作。
示例代码:
----- --- - --- -- --- --- --- -- --- ----- ----- ------- - ----------- ----- --------- - ------- -------------- ----------------------- -- --- -- -- -- -- -- -- --
实现多维数组转为一维数组
借助 Array.prototype.flatMap() 方法可以在调用 map() 方法后链式调用一次 flat() 方法,可以实现将一个多维数组转为一维数组的操作。
示例代码:
----- --- - ---- --- ---- --- --- ----- ----- ------- - ------------------ -- ------ --------------------- -- --- -- --- --- --- ---
实现多维数组转为一维数组并去重
结合 Array.prototype.flatMap() 和 Set 内置对象可以实现将一个多维数组转为一维数组并去重的操作。
示例代码:
----- --- - ---- --- ---- --- --- ----- ----- ---------- - ------------------ -- ------ ----- --------- - ------- ----------------- ----------------------- -- --- -- -- -- -- --
总结
Array.prototype.{flat,flatMap} 方法可以让开发者更加高效地操作数组,并且结合其他内置对象可以实现一些实用的功能。当然,在实际开发过程中要注意兼容性问题,需要根据具体情况来选择使用。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64ccc8f55ad90b6d042c05e7