add: 数组的 reduce 方法

This commit is contained in:
qianguyihao 2019-09-21 18:22:32 +08:00
parent 148fe61243
commit 3517e2f37e

View File

@ -34,7 +34,7 @@
| filter()| 对数组中每一项运行回调函数该函数返回结果是true的项将组成新的数组返回结果为**新的数组**。可以起到过滤的作用| 不会改变原数组|
| every()| 如果有一项返回false则停止遍历此方法返回 false | 一假即假。要求每一项都返回true最终的结果才返回true |
| some()| 只要有一项返回true则停止遍历此方法返回true | 一真即真。要求每一项都返回false最终的结果才返回false|
| reduce | | |
| reduce | 为数组中的每一个元素,依次执行回调函数 | |
**数组的其他方法如下**
@ -528,8 +528,9 @@ PS这几个方法**不会修改原数组**。
```
数组/boolean/无 = 数组.every/filter/forEach/map/some(
function(element,index,arr){
程序和返回值;
function(item, index, arr){
程序和返回值;
})
```
有了这几种方法就可以替代一些for循环了。下面依次来介绍。
@ -670,7 +671,6 @@ map的应用场景主要就是以上两种。
[6,5,6]
```
上方代码的ES6写法
```javascript
@ -704,7 +704,6 @@ map的应用场景主要就是以上两种。
[{"name":"许嵩","type":"一线"},{"name":"邓紫棋","type":"一线"}]
```
### every()方法
`every()`对数组中每一项运行回调函数如果都返回trueevery就返回true如果有一项返回false则停止遍历此方法返回false。
@ -737,7 +736,52 @@ map的应用场景主要就是以上两种。
`some()`对数组中每一项运行回调函数只要有一项返回true则停止遍历此方法返回true。
注意every()方法的返回值是boolean值
注意some()方法的返回值是boolean值。
### reduce()方法
> reduce的发音[rɪ'djuːs]。中文含义是减少。
`reduce()`:为数组中的每一个元素,依次执行回调函数。
**语法**
```javascript
arr.reduce(
function(previousValue, item, index, arr) {
}, initialValue)
```
参数解释:
- previousValue上一次调用回调函数时的返回值或者初始值
- currentValue当前正在处理的数组元素
- currentIndex当前正在处理的数组元素下标
- array调用reduce()方法的数组
- initialValue可选的初始值作为第一次调用回调函数时传给 previousValue 的值)
备注:如果能熟练使用 reduce 的用法,将能替代很多其他的数组方法。
**举例1**
计算数组中所有元素项的总和。代码实现:
```javascript
var arr = [2, 0, 1, 9, 6];
sumValue = arr.reduce(function(total, item) { // 计算 arr 数组中,所有元素项的综合
return total + item;
}, 0);
console.log('sumValue:' + sumValue); // 打印结果18
```
## 数组的其他方法