es6 reduce函数
时间: 2023-11-02 15:01:37 浏览: 147
reduce() 是 ES6 中的一个数组方法,它接收一个函数作为累加器,用来对数组中的每个元素进行累加操作,并最终返回一个结果值。reduce() 方法接受四个参数:初始值、累加器函数、当前值、当前索引和当前数组。累加器函数会被依次应用于数组中的每个元素,从左到右进行累加计算。在每一次调用累加器函数时,它会接收两个参数:上一次累加的结果值和当前元素的值。reduce() 方法的返回值就是累加的结果。
下面是一个例子来说明 reduce() 的使用:
```
let arr = [1, 2, 3, 4, 5];
let sum = arr.reduce((previousValue, currentValue) => previousValue + currentValue, 0);
console.log(sum); // 输出 15
```
在这个例子中,我们使用 reduce() 对数组 arr 中的元素进行累加操作。初始值为 0,累加器函数将上一次累加的结果值和当前元素的值相加,得到最终的结果值 15。
相关问题
es6 reduce
reduce()是ES6中的一个非常强大的数组方法。它接收一个函数作为累加器,在数组中的每个值上进行迭代,并将多个值缩减为一个值。reduce()方法接受四个参数:初始值、累加器函数、当前值和当前索引。累加器函数有两个参数,第一个参数是累加器的值(也称为累计值),第二个参数是当前值。累加器函数在每次迭代中将累加器的值与当前值进行操作,并返回一个新的累加器值。最终,reduce()方法返回累加器的最终值。
让我们来看一些示例:
1. 数组求和、求乘积:
```javascript
let arr = [1, 2, 3, 4];
let sum = arr.reduce((x, y) => x + y);
let mul = arr.reduce((x, y) => x * y);
console.log(sum); // 求和,10
console.log(mul); // 求乘积,24
```
2. 多维数组转一维数组:
```javascript
let arr = [[0, 1], [2, 3], [4, [5, 6, 7]]];
const newArr = function(arr) {
return arr.reduce((pre, cur) => pre.concat(Array.isArray(cur) ? newArr(cur) : cur), []);
}
console.log(newArr(arr)); // [0, 1, 2, 3, 4, 5, 6, 7]
```
es6 reduce讲解
在ES6中,`reduce()` 是数组的一个高阶函数,它对数组的每个元素执行一个由您提供的 reducer 函数,将所有元素组合成单个返回值。这个过程通常用于数据的累加、求和、查找最大最小值等操作。
`reduce()` 函数的基本语法如下:
```javascript
array.reduce(callback[, initialValue])
```
- `callback`: 这是一个接受四个参数的函数,依次为:
- `accumulator`: 上一次回调的结果(初始值或前一次迭代后的值)
- `currentValue`: 当前正在处理的元素
- `currentIndex` (可选): 当前元素的索引
- `array`: 调用 `reduce()` 的原始数组
- `initialValue` (可选): 如果提供,作为第一个 `accumulator` 的值。如果没有提供,会从数组的第一个元素开始。
例如,计算数组中所有数字的总和:
```javascript
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((accumulator, currentValue) => accumulator + currentValue);
console.log(sum); // 输出: 15
```
阅读全文