JavaScript 之迭代方法

前言:关于 JS 中为数组定义的迭代方法,我最开始是在《JavaScript高级程序设计》中学习的,而后。。。我并无看懂,后来翻阅各个大佬的博客,稍微理解了那么一丢丢。如下就是个人一点看法。数组

 

首先,咱们须要知道数组中的迭代方法都有哪些,列举出来分别是:every、some、filter、map、forEach、reduce。函数

其中 every、some、filter、map、forEach 五种方法在传入时函数会接受三种参数,分别是 item(数组中项的值)、index(项的索引)、array(数组自身)。我在下面的案例中都只传入了两个值,缘由是。。。用不到(实际上是懒得写) 学习

而 reduce 方法则会接受四个参数,分别是 prev(前一个项)、cur(当前项)、index(项的索引)、array(数组对象),函数中返回的任何值都会做为第一个参数传给下一项,函数的迭代是在数组的第二项开始的。spa

 

1.every ------- 查询数组中的每一项是否知足条件

var num = [1,2,3,4,5]; var number = num.every(function(item,index){ return (item > 3);   //判断传入的值是否所有都大于3
}) console.log(number); //false 有一个不知足即为false

2.some ------- 查询数组中的每一项哪些知足条件

var num = [1,2,3,4,5]; var number = num.some(function(item,index){ return (item > 3);   //判断传入的值哪些项大于3
}) console.log(number); //true 知足一个便可为true

3.filter ------ 筛选符合条件的项,组成新数组

var num = [1,2,3,4,5]; var number = num.filter(function(item,index){ return (item > 3);   //判断传入的值哪些项大于3
}) console.log(number); //[4,5]

 4.map ------ 数组中的项经过计算,组成新数组

var num = [1,2,3,4,5]; var number = num.map(function(item,index){ return item * 3;   //传入的数值都乘以3
}) console.log(number); //[3,6,9,12,15]

5.forEach ------ 传入数组中的每一项

var num = [1,2,3,4,5]; var number = num.forEach(function(item,index){ console.log(item); // 1 2 3 4 5
})

    关于 forEach 我再多叨叨几句,这个方法在本质上与 for 循环没有什么区别。上面提到过,每一个方法都会传入三个参数,那么我在输出时传入第一项,也就是输出数组中的每一项。若是传入第二项,则是循环迭代数组的 index 下标值,若是传入第三项,则是循环迭代整个 num 数组。设计

6.reduce ------ 数组的前项和后项进行累计值计算

var num = [1,2,3,4,5]; var number = num.reduce(function(prev,cur,index){ return prev + cur; }) console.log(number); // 1+2+3+4+5 = 15 本质上就是数组中的项 累计运算的过程
相关文章
相关标签/搜索