发表于: 2021-11-28 23:49:17
0 879
今天完成的事情:
看了JS知识点
明天计划的事情:
继续看知识点
遇到的问题:
慢慢收集问题
收获:
对一个数组 filter、some、map、foreach的操作分别有什么作用?
循环(loop),指的是在满足条件的情况下,重复执行同一段代码。比如,while语句。
迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项。比如,for语句。
遍历(traversal),指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。
递归(recursion),指的是一个函数不断调用自身的行为。
函数不断在调用自己,直到找到终点,把结果沿着原来的路线进行传递,最终回归到起点
数组,在编程语言中很重要,其中every()、filter()、some()、map()、forEach()是ECMAScript5为数组定义的5个迭代方法, 是为了更方便的对数组进行操作。
every()、filter()、some()、map()、forEach()是ECMAScript5为数组定义的5个迭代方法, 是为了更方便的对数组进行操作。
every():对数组中的每一项运行给定函数,如果数组中检测到有一个元素不满足,则整个表达式返回 false ,且剩余的元素不会再进行检测
filter():对数组中的每一项运行给定函数,返回该函数会返回true 的项组成的数组。
筛选出数组中符合的项,组成新的数组
forEach():对数组中的每一项运行给定函数。这个方法没有返回值。调用数组的每个元素,并将元素传递给回调函数,让数组的每一项做一件事
map():对数组中的每一项运行给定函数,返回每次函数调用的结果组成的数组。
map()让数组通过某种计算得到一个新的数组,不改变原来数组的值
some():对数组中的每一项运行给定函数, some()检测数组中的某些项符合条件,如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测
(3)常见问题:
什么是迭代、遍历、循环、递归?
(4)解决方案:
循环(loop):指的是在满足条件的情况下,重复执行同一段代码。一般语言都会有三种类型的循环语句:for语句、while语句和do While语句。
可以理解为:循环就是迭代(重复)一些命令的代码块, 如果循环控制条件不满足的话, 就结束循环.
例子:将一段音乐或声音反覆播放数次(无限次/无穷循环)
迭代(iterate),指的是按照某种顺序逐个访问列表中的每一项
可以理解为:遍历一个集合,把集合里的每个元素都遍历一边。有时候,迭代也会指循环执行,反复执行的意思。
遍历(traversal),是树形结构的一种重要运算,指的是按照一定的规则访问树形结构中的每个节点,而且每个节点都只访问一次。
可以理解为:遍历,是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。或者理解为按一定的次序系统地访问结构中的所有结点,使每个结点只被访问一次。
递归(recursion)在数学与计算机科学中,是指在函数的定义中使用函数自身的方法。递归一词还较常用于描述以自相似方法重复事物的过程。例如,当两面镜子相互之间近似平行时,镜中嵌套的图像是以无限递归的形式出现的。
可以理解为:指的是一个函数不断调用自身的行为。
(5)拓展思考:
其他操作数组的方法
reduce() 方法接收一个函数作为累加器,数组中的每个值(从左到右)开始缩减,最终计算为一个值。
reduce() 可以作为一个高阶函数,用于函数的 compose。
注意: reduce() 对于空数组是不会执行回调函数的。
function(total,currentValue, index,arr)
total 必需。初始值, 或者计算结束后的返回值。
currentValue 必需。当前元素
currentIndex 可选。当前元素的索引
arr 可选。当前元素所属的数组对象。
评论