add: 数组的 reduce 方法
This commit is contained in:
parent
148fe61243
commit
3517e2f37e
@ -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()`:对数组中每一项运行回调函数,如果都返回true,every就返回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
|
||||
```
|
||||
|
||||
|
||||
## 数组的其他方法
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user