一、数组的迭代方法,
每一个迭代方法的参数都是一个函数,该函数有三个参数:数组项的值,该项在数组中的位置,数组对象本身,其中后两个参数可以省略
给定一个数组 nums[1,2,3,4,5,4,3,2,1]
1.every(): 参数为一个函数,对数组的每一项都运行给定函数,如果该函数对每一项都返回 true,则 every() 函数返回 true
示例一、
![](https://img.haomeiwen.com/i22774661/91978412912d9292.png)
结果:
![](https://img.haomeiwen.com/i22774661/a1303c0d22752128.png)
示例二、
![](https://img.haomeiwen.com/i22774661/1901c9cb1cc456c2.png)
结果:
![](https://img.haomeiwen.com/i22774661/9fd91e48bad3e588.png)
2.some() 方法,参数为一个函数,对数组的每一项都运行给定函数,如果其中有一项满足参数函数返回 true,则some()方法总体返回 true (只要有一项满足参数函数要求即可)
示例:
![](https://img.haomeiwen.com/i22774661/aee174bdce8177a4.png)
结果:
![](https://img.haomeiwen.com/i22774661/fcf02c74d4e8427d.png)
3.forEach(), 参数为一个函数,对数组的每一项都运行给定函数,这个方法没有返回值;本质上类似于用 for 循环遍历数组,然后执行想要的操作
![](https://img.haomeiwen.com/i22774661/5b6ab350fd48c0fe.png)
4.map(),参数为一个函数,对数组的每一项都运行给定函数,返回每次函数调用的结果组成的数组
示例:
![](https://img.haomeiwen.com/i22774661/18bf59ce5263bb17.png)
结果:
![](https://img.haomeiwen.com/i22774661/791267d3a808f9c3.png)
注意:map()方法和 forEach()方法都是对数组的每一项执行想要的操作,但是 forEach() 方法没有返回值,map() 方法会返回每次函数调用的结果组成的数组
5.filter(), 参数为一个函数,对数组每一个元素运行该函数;返回该函数返回为 ture 的元素组成的新数组;因此这个方法类似于一个过滤器,最后得到过滤后的数组
示例
![](https://img.haomeiwen.com/i22774661/6955d24758dfa2ee.png)
结果:
![](https://img.haomeiwen.com/i22774661/a719190bfad8ff54.png)
二、数组的归并方法 reduce() 和 reduceRight()
这两个方法都会迭代数组所有项,然后构建一个最终返回的值,,他们的参数都是一个 函数 和 作为归并基础的初始值(可选);其中函数又有四个参数:前一个值,当前值,项的索引,数组对象;这个函数返回的任何值都会作为第一个参数传递给下一项
1.reduce(),从数组第一项开始,逐个往后遍历;第一次迭代发生在数组的第二项上
示例:求出数组所有项之和
![](https://img.haomeiwen.com/i22774661/2a27365cec184a6b.png)
第一次执行函数时 prev是1,cur是2;第二次执行时 prev是3(第一次的结果),cur是3(数组第三项)
结果:
![](https://img.haomeiwen.com/i22774661/9955b88f7d992c3a.png)
2.reduceRight(), 与reduce()类似,不过方向相反
![](https://img.haomeiwen.com/i22774661/881a85588a2b0eb0.png)
结果:
![](https://img.haomeiwen.com/i22774661/0a45e150a6b5f8cc.png)
网友评论