JavaScript为数组提供了5个迭代方法。每个方法接收两个参数:要在每一项上运行的函数和(可选)运行该函数的作用域对象——影响this的值。需要传入的参数:数组项的值、该项在数组中的位置和数组对象本身。
•every(): 对数组中的每一项运行给定函数,如果该行数对每一项都返回true,则返回true
•filter(): 对数组中的每一项运行给定函数,返回会返回true的项组成的数组
•foreEach(): 对数组中的每一项运行给定函数,没有返回值
•map(): 对数组中的每一项运行给定函数,返回每次函数调用的结果组成的函数。
•some(): 对数组中的每一项运行给定函数,如果任一项返回true,则函数返回true
以上方法都不会修改数组中包含的值。
9. 归并方法
JavaScript中有两个归并数组的方法:reduce()和reduceRight()。这两个方法都会迭代数组的所有项,然后构建一个最终返回的值。其中,reduce()方法从数组第一项开始,而reduceRight()则从数组的最后一项开始。
它们都可以接收两个参数:一个在每一项上调用的函数和(可选)作为归并基础的初始值。传递给reduce()和reduceRight()的函数接收4个参数:前一个值、当前值、项的索引和数组对象。这个函数返回的任何值都会作为第一个参数自动传给下一项。第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项。
var values = [1,2,3,4,5]; var sum = values.reduce(function(prev, cur, index, array){ return prev+cur; }); alert(sum); // 15
第一次执行回调函数,prev是1,cur是2。第二次,prev是3(1+2),cur是3(数组第三项的值),知道每一项都访问到。
reduceRight()的作用类似,只不过方向相反而已。
以上这篇JavaScript:Array类型全面解析就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
您可能感兴趣的文章: