在 ES7 中,新增了一个 Array 原型上的 flat() 方法,该方法用于将嵌套数组展开为一维数组。在前端开发中,处理嵌套数组时非常实用,本文将详细介绍该方法的用法和示例。
语法
Array.prototype.flat(depth);
- depth:可选参数,指定展开的深度,默认为 1。如果传入 Infinity,则会将所有嵌套数组展开。
示例
以下是几个使用该方法的示例:
-- -------------------- ---- ------- -- -- ---- -------- ----- ---- - --- -- --- ---- ------------ -- --- -- -- -- -- -- ------- - ----- ---- - --- -- --- --- ----- ------------- -- --- -- -- -- -- -- -- -- ------------------ ----- ---- - --- -- --- --- --- ------ -------------------- -- --- -- -- -- -- --展开代码
注意事项
- 需要注意的是,该方法会跳过 undefined 项。
const arr4 = [1, 2, , 4]; arr4.flat(); // [1, 2, 4]
- 如果想要保留嵌套数组中的空位,则需要使用 flatMap() 方法,示例如下:
const arr5 = [1, 2, , [3, [4, 5]]]; arr5.flatMap(item => item); // [1, 2, 3, [4, 5]]
使用场景
- 对嵌套数组进行一维化处理。
- 在使用类数组对象时,它可以将伪数组转化为真正的数组。
- 在编写递归函数的时候使用该方法,可以直接得到一个扁平化的数组,而不需要进行手动递归。
总结
在处理嵌套数组时,Array.prototype.flat() 是一个非常实用的方法。本文详细介绍了它的语法、示例、注意事项和使用场景。对于开发者来说,掌握该方法可以提高开发效率,减少代码量,更好地完成项目。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/649023e148841e9894e4fe96