在 ES10 中,新增了一个 Array.flat() 方法,它可以将嵌套数组展开为一维数组。这个方法非常实用,可以大大简化嵌套数组的处理。
用法
Array.flat() 方法有一个可选的参数 depth,用于指定要展开的嵌套层数。默认值为 1,即只展开一层嵌套数组。如果传入 Infinity,则会展开所有嵌套数组。
下面是一个简单的示例:
----- --- - --- -- --- -- --- ----- ----- ------- - ----------- --------------------- -- --- -- -- -- --- ---
在上面的代码中,原始数组 arr 中包含一个嵌套数组 [3, 4, [5, 6]],使用 flat() 方法展开后得到的 flatArr 数组中,这个嵌套数组还是存在的。
如果要将所有嵌套数组都展开,可以这样写:
----- --- - --- -- --- -- --- ----- ----- ------- - ------------------- --------------------- -- --- -- -- -- -- --
注意事项
在使用 Array.flat() 方法时,需要注意以下几点:
1. 不会改变原数组
Array.flat() 方法不会改变原数组,而是返回一个新的数组。
----- --- - --- -- --- ---- ----- ------- - ----------- ----------------- -- --- -- --- --- --------------------- -- --- -- -- --
2. 只会展开数组
Array.flat() 方法只会展开数组,对于其他类型的值(比如对象、字符串、数字等),会直接返回。
----- --- - --- -- ------ ------- --------- ----- ------- - ----------- --------------------- -- --- -- ------ ------- --------
3. 可以处理稀疏数组
稀疏数组是指数组中包含 undefined 或空位的情况。Array.flat() 方法会将它们展开为 undefined。
----- --- - --- -- - --- ----- ------- - ----------- --------------------- -- --- -- ---------- --
4. 可以自定义展开深度
Array.flat() 方法的 depth 参数可以是任意非负整数,也可以是 Infinity。如果传入的是负数或者其他类型的值,会被自动转换为 0。
----- --- - --- -- --- -- --- ----- ----- -------- - ------------- -- --- ----------- ----- -------- - ------------ ----- -------- - ------------------- ---------------------- -- --- -- --- -- --- ---- ---------------------- -- --- -- -- -- -- -- ---------------------- -- --- -- -- -- -- --
总结
Array.flat() 方法可以方便地将嵌套数组展开为一维数组。在使用时需要注意不会改变原数组、只会展开数组、可以处理稀疏数组、可以自定义展开深度等几点。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66032278d10417a222f2b5af