您好!在这篇博客中,您将了解“reduce 方法”以及如何在 JavaScript 中使用它。那么,让我们开始吧。
Reduce 是 JavaScript 中的数组方法之一。它接受一个数组作为输入并返回一个值。当您想要处理数组的每个元素并根据提供的回调函数更新公共值时,reduce 方法非常有用。
让我们深入了解一下:
Reduce 有两个参数:
它从数组的第一个元素开始,将其传递给回调函数,并将结果存储在“result”中。处理完最后一个元素后,它返回最终的“结果”。
*可选:
如果数组为空并且没有提供初始值,reduce 会抛出 TypeError,因为没有元素可以作为初始累加器。
如果数组只有一个元素并且没有提供初始值,则reduce 返回该单个元素而不调用回调。
示例:
这个示例将帮助您了解如何以及在何处使用reduce方法。欢迎在评论中提问。
简单:
问。给定一个数组,求其元素的总和。
使用reduce方法的解决方案。
const arr = [1, 2, 3, 4]; // 0 + 1 + 2 + 3 + 4 const initialValue = 0; const sumofArray = arr.reduce( (result, element) => result + element, initialValue, ); console.log(sumofArray); // Expected output: 10
说明:
最初,结果为零,因为我们提供了零作为第二个参数。然后,对于每个元素,它都会将该元素添加到结果中,最后返回最终的结果值。
中:
此示例取自:https://leetcode.com/problems/flatten-deeply-nested-array/description/
问。给定多维数组 arr 和深度 n,返回该数组的扁平版本。
多维数组是一种包含整数或其他多维数组的递归数据结构。
扁平数组是该数组的一个版本,删除了部分或全部子数组并替换为该子数组中的实际元素。仅当当前嵌套深度小于 n 时才应执行此展平操作。第一个数组中元素的深度被认为是 0。
Reduce 方法的解决方案:
function flattenArray(arr, depth) { if(depth===0) return arr; return arr.reduce((result,element) => { if(Array.isArray(element)&&depth>0) { result.push(...flattenArray(element, depth-1)); } else { result.push(element); } return result; }, []); }
说明:
如果深度为零,我们不需要做任何事情。否则,我们使用递归和展开运算符将元素添加到结果中。
就是这样!我希望你已经很好地了解了reduce方法。
参考文献:
来自 MDN
以上是JavaScript 数组的reduce()方法的详细内容。更多信息请关注PHP中文网其他相关文章!