分享人:徐炜
目录
1.背景介绍
2.知识剖析
3.常见问题
4.解决方案
5.编码实战
6.扩展思考
7.参考文献
8.更多讨论
使用JavaScript数组常常需要对数组进行遍历、迭代操作。而我们常用的就是for语句对数组进行迭代。
在ES5已经为数组定义了5个迭代的方法,分别是:filter、some、map、foreach、every。
ECMAScript5为数组定义了5个迭代方法,每个方法都接收两个参数:
1、要在每一项上运行的函数。
2、运行该函数的作用域对象。
传入这些方法中的函数会接收三个参数:
1、数组项的值。
2、该项在数组中的位置。
3、数组对象本身
1.filter()是对数组中的每一项运行给定函数,返回该函数会返回true的项所组成的数组。
2.map()是对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
3.forEach() 是多数组中的每一项运行给定函数,这个方法没有返回值。它只是对数组中的每一项运行传入的函数,没有返回值。本质上与使用for循环迭代数组一样。
4.every()是对数组中的每一项运行给定函数,如果该函数对每一项都返回true,则返回true。
5.some()是对数组中的每一项运行给定函数,如果该函数对任一项返回true,则返回true。
迭代和遍历、循环、递归有什么区别?
循环(loop):指的是在满足条件的情况下,重复执行同一段代码。一般语言都会有三种类型的循环语句:for语句、while语句和do While语句。
可以理解为:循环就是迭代(重复)一些命令的代码块, 如果循环控制条件不满足的话, 就结束循环。
迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。
迭代算法:是用计算机解决问题的一种基本方法。它利用计算机运算速度快、适合做重复性操作的特点, 让计算机对一组指令(或一定步骤)进行重复执行,在每次执行这组指令(或这些步骤)时,都从变量的原值推出它的一个新值。
遍历(traversal),是树形结构的一种重要运算,指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。
递归(recursion)在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。 递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。
可以理解为:指的是一个函数不断调用自身的行为。
参考一:js 数组迭代方法,归并方法
by钟楚炯|陈静雯|徐炜