add: 数组的 reduce 方法
This commit is contained in:
parent
148fe61243
commit
3517e2f37e
@ -34,7 +34,7 @@
|
|||||||
| filter()| 对数组中每一项运行回调函数,该函数返回结果是true的项,将组成新的数组,返回结果为**新的数组**。可以起到过滤的作用| 不会改变原数组|
|
| filter()| 对数组中每一项运行回调函数,该函数返回结果是true的项,将组成新的数组,返回结果为**新的数组**。可以起到过滤的作用| 不会改变原数组|
|
||||||
| every()| 如果有一项返回false,则停止遍历,此方法返回 false | 一假即假。要求每一项都返回true,最终的结果才返回true |
|
| every()| 如果有一项返回false,则停止遍历,此方法返回 false | 一假即假。要求每一项都返回true,最终的结果才返回true |
|
||||||
| some()| 只要有一项返回true,则停止遍历,此方法返回true | 一真即真。要求每一项都返回false,最终的结果才返回false|
|
| some()| 只要有一项返回true,则停止遍历,此方法返回true | 一真即真。要求每一项都返回false,最终的结果才返回false|
|
||||||
| reduce | | |
|
| reduce | 为数组中的每一个元素,依次执行回调函数 | |
|
||||||
|
|
||||||
**数组的其他方法如下**:
|
**数组的其他方法如下**:
|
||||||
|
|
||||||
@ -528,8 +528,9 @@ PS:这几个方法**不会修改原数组**。
|
|||||||
|
|
||||||
```
|
```
|
||||||
数组/boolean/无 = 数组.every/filter/forEach/map/some(
|
数组/boolean/无 = 数组.every/filter/forEach/map/some(
|
||||||
function(element,index,arr){
|
function(item, index, arr){
|
||||||
程序和返回值;
|
程序和返回值;
|
||||||
|
})
|
||||||
```
|
```
|
||||||
|
|
||||||
有了这几种方法,就可以替代一些for循环了。下面依次来介绍。
|
有了这几种方法,就可以替代一些for循环了。下面依次来介绍。
|
||||||
@ -670,7 +671,6 @@ map的应用场景,主要就是以上两种。
|
|||||||
[6,5,6]
|
[6,5,6]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
上方代码的ES6写法:
|
上方代码的ES6写法:
|
||||||
|
|
||||||
```javascript
|
```javascript
|
||||||
@ -704,7 +704,6 @@ map的应用场景,主要就是以上两种。
|
|||||||
[{"name":"许嵩","type":"一线"},{"name":"邓紫棋","type":"一线"}]
|
[{"name":"许嵩","type":"一线"},{"name":"邓紫棋","type":"一线"}]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
### every()方法
|
### every()方法
|
||||||
|
|
||||||
`every()`:对数组中每一项运行回调函数,如果都返回true,every就返回true;如果有一项返回false,则停止遍历,此方法返回false。
|
`every()`:对数组中每一项运行回调函数,如果都返回true,every就返回true;如果有一项返回false,则停止遍历,此方法返回false。
|
||||||
@ -737,7 +736,52 @@ map的应用场景,主要就是以上两种。
|
|||||||
|
|
||||||
`some()`:对数组中每一项运行回调函数,只要有一项返回true,则停止遍历,此方法返回true。
|
`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…
x
Reference in New Issue
Block a user