在 ES9 中,新增了一个非常实用的方法 Array.prototype.flat(),它可以将嵌套的二维以上的数组一维化,并且可以传入参数指定最多要展开的层数。
用法
const arr = [1, 2, [3, [4, 5]]]; const flatArr = arr.flat(); console.log(flatArr); // [1, 2, 3, [4, 5]]
上述代码中,数组 arr 中包含了一个嵌套的数组 [3, [4, 5]],使用 Array.prototype.flat() 方法可以将其一维化。
参数
Array.prototype.flat() 方法可以传入一个参数,指定最多要展开的层数。
const arr = [1, 2, [3, [4, 5]]]; const flatArr = arr.flat(1); console.log(flatArr); // [1, 2, 3, [4, 5]]
上述代码中,传入参数 1,只展开了一层的嵌套。
指南
Array.prototype.flat() 方法可以排除嵌套的数组,便于对数组进行操作和处理,在实际应用程序的开发中非常实用。以下是一些使用场景:
数组扁平化
通过 Array.prototype.flat() 方法可以将二维及以上嵌套的数组扁平化,方便后续的处理。
const arr = [1, 2, [3, [4, 5]]]; const flatArr = arr.flat(); console.log(flatArr); // [1, 2, 3, [4, 5]]
去除数组中的空值
使用 Array.filter() 方法可以去除数组中的空值,使用 Array.prototype.flat() 方法可以先一维化数组,然后使用数组的 filter() 方法即可过滤掉空值。
const arr = [null, undefined, '', 0, [1, 2], [], [3, 4, [5, '', '', [6]]]]; const flatArr = arr.flat(Infinity); const filteredArr = flatArr.filter(item => Boolean(item)); console.log(filteredArr); // [1, 2, 3, 4, 5, 6]
以上代码中,数组 arr 的长度为 7,使用 Array.prototype.flat() 方法将其一维化后,再使用 Array.filter() 方法过滤掉空值,最终得到的新数组的长度为 6。
总结
以上是关于 ES9 中 Array.prototype.flat() 方法的使用和使用方式的详细介绍。在实际应用程序的开发中,它是一个非常实用的方法,可以方便我们对数组进行处理和操作。在实际使用中要注意指定要展开的层数,以免造成不必要的浪费。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648d598a48841e9894ba6685