在 ES2019 (ES9) 中,新增了两个有用的 Array.prototype 方法,即 .flat()
和 .flatMap()
。这两个方法可以帮助我们更好地处理数组,更快地进行数组扁平化,减轻程序的负担。
Array.prototype.flat()
.flat()
方法用于将多维数组扁平化为一维数组。在运用该方法时我们可以传入一个整数作为参数用于指定要扁平化的嵌套深度的级别。如果我们不传入参数,默认会把数组扁平化为一维。我们来看一个例子:
const arr = [1, 2, [3, 4, [5, 6]]]; console.log(arr.flat()); // [1, 2, 3, 4, [5, 6]] console.log(arr.flat(2)); // [1, 2, 3, 4, 5, 6]
在这个例子中,先创建了一个多维数组 arr
,然后使用 .flat()
方法扁平化到一层。我们也可以使用 .flat(2)
将其扁平化到两层,结果是一个一维数组。这种方法是非常实用并且执行起来非常快。
Array.prototype.flatMap()
.flatMap()
方法就像是 .map()
与 .flat()
的结合。通常,我们需要首先使用 .map()
方法来对原始数组进行处理,然后在使用 .flat()
来扁平化数组。这样做会让代码变得混乱不堪,但是使用 .flatMap()
就会变得简单明了。我们来看一个例子:
const arr = [1, 2, 3, 4]; const result = arr .flatMap(x => [x * 2]); console.log(result); // [2, 4, 6, 8]
在这个例子中,我们使用 .flatMap()
方法,它首先对原数组中的每个元素进行处理,结果以数组的形式返回,最后使用 .flat()
方法扁平化这个数组。这种方式更加简洁和高效,否则我们可能需要几个步骤来完成相同的任务。
总结
以上是 ES9 中新增的两个方法:.flat()
和 .flatMap()
,它们可以使代码更加简洁和高效。我们建议在进行数据的扁平化时使用 .flat()
方法;在对数组进行处理之后再将其扁平化时,建议使用 .flatMap()
方法。这些方法是 ECMAScript 新的进展,可以使你的 JavaScript 更加强大。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64fad1f9f6b2d6eab319db33