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