在ES10中,新增了一个函数 flatMap()
用来操作数组。该函数可以对数组中的每一个元素执行一个操作,并将结果组成一个新数组。那么 flatMap()
到底该如何使用呢?
语法
array.flatMap(function callback(currentValue[, index[, array]]) { // 返回一个数组元素,可以映射为其他的值或者被平铺 }[, thisArg])
简介
flatMap()
方法首先映射每个元素,然后通过一个深度为1的扁平数组方法(flatten)将结果嵌套的数组减少一维。
与 map()
不同,flatMap()
对于将映射后的结果扁平一层,尤其是当操作是创建一个新数组时非常有用。
实例
-- -------------------- ---- ------- ----- --- - --- -- -- -- --- ----- ------ - --------- -- -- - ---- -------------------- -- ----- ---- ---- ---- ----- ----- --------- - ------------- -- -- - ---- ----------------------- -- --- -- -- -- ---
在这个例子中,我们首先对数组进行了 map()
操作,将每个元素都翻倍。这样,我们得到了一个嵌套的数组,即一个二维数组。接着,我们通过 flatMap()
方法,将这个二维数组扁平为一维数组。
flatMap()
方法非常实用,特别是当我们需要多维数组中嵌套的情况下。它可以简化操作并且更直接地得到我们期望的结果。
循环中的 flatMap()
-- -------------------- ---- ------- ----- --- - --- -- -- -- --- ----- ------ - ------------- -- - -- -- - - --- -- - ------ -- - --- - ---- - ------ --- - --- -------------------- -- --- --
在这个例子中,我们首先检查数组中的每个元素是否为偶数。如果是,我们将其除以2,然后将其存储到一个新数组中。如果不是,我们返回一个空数组。
这是非常重要的,因为 flatMap()
方法可以跳过值为空的项。因此,如果我们不返回空数组,我们最终的结果会包含 undefined
值。
通过返回空数组,我们可以确保我们的结果是纯净的。
总结
flatMap()
方法非常方便,尤其是当我们需要多维数组中嵌套的情况下。它可以简化操作并且更直接地得到我们期望的结果。在使用这个函数时,我们需要特别注意函数的返回值,并且需要始终尝试返回一个数组,以避免在结果中出现 undefined
值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a7842a48841e9894405e55