es6 reduce
时间: 2023-11-01 13:57:27 浏览: 163
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
```
es6 reduce统计
在ES6中,`reduce()` 方法是一个数组操作符,它将数组的所有元素通过一个提供的函数累加起来,最终返回一个单一的值。这个函数通常有两个参数:累加器(accumulator)和当前元素(current value),并且会对数组中的每个元素依次执行这个函数。
语法通常是这样的:
```javascript
array.reduce(callback(accumulator, currentValue[, initialValue]), initialValue)
```
- `callback`:必填,这是一个接受两个参数(累加器和当前值)并返回累加器的新值的函数。
- `initialValue`:可选,提供一个初始的累加器值,如果没有指定,则数组的第一个元素会被当作第一个值来进行计算。
`reduce()` 的作用类似于数据库中的"聚合"操作,它可以用来求和、计数、找出最大值或最小值等。例如,计算数组中所有数字的总和:
```javascript
const numbers = [1, 2, 3, 4, 5];
const sum = numbers.reduce((total, num) => total + num, 0);
console.log(sum); // 输出 15
```
阅读全文