数组遍历的⼏种⽅法及⽤法
(后续编辑更新,这是我后⾯重写的⼀篇⽂章,关于数组的遍历⽅法和使⽤场景介绍的更加详细⼀点, ,有兴趣的可以看看。)
js提供了多种遍历数组的⽅法,具体使⽤场景略有区别,在此简单介绍⼀下。
⼀、forEach⽅法
forEach是最简单、最常⽤的数组遍历⽅法,它提供⼀个回调函数,可⽤于处理数组的每⼀个元素,默认没有返回值。
以上是个简单的例⼦,计算出数组中⼤于等于3的元素的个数。
回调函数的参数,第⼀个是处于当前循环的元素,第⼆个是该元素下标,第三个是数组本⾝。三个参数均可选。
⼆、map⽅法
map,从字⾯上理解,是映射,即数组元素的映射。它提供⼀个回调函数,参数依次为处于当前循环的元素、该元素下标、数组本⾝,三者均可选。默认返回⼀个数组,这个新数组的每⼀个元素都是原数组元素执⾏了回调函数之后的返回值。
map⽅法不改变原数组。
js数组方法总结以上是⼀个简单的例⼦,把原数组的每⼀项乘以⾃⾝下标+1的数。
三、filter⽅法
filter,过滤,即对数组元素的⼀个条件筛选。它提供⼀个回调函数,参数依次为处于当前循环的元素、该元素下标、数组本⾝,三者均可选。默认返回⼀个数组,原数组的元素执⾏了回调函数之后返回值若为true,则会将这个元素放⼊返回的数组中。
filter⽅法不改变原数组
以上是⼀个简单的例⼦,筛选出原数组中,⾃⾝乘以下标⼤于等于3的元素。
四、some、every⽅法
some⽅法和every的⽤法⾮常类似,提供⼀个回调函数,参数依次为处于当前循环的元素、该元素下标、数组本⾝,三者均可选。
数组的每⼀个元素都会执⾏回调函数,当返回值全部为true时,every⽅法会返回true,只要有⼀个为false,every⽅法返回false。当有⼀个为true时,some⽅法返回true,当全部为false时,every⽅法返回false。
some、every⽅法不改变原数组。
五、reduce⽅法
reduce⽅法有两个参数,第⼀个参数是⼀个回调函数(必须),第⼆个参数是初始值(可选)。回调函数有四个参数,依次为本轮循环的累计值、当前循环的元素(必须),该元素的下标(可选),数组本⾝(可选)。
reduce⽅法,会让数组的每⼀个元素都执⾏⼀次回调函数,并将上⼀次循环时回调函数的返回值作为下⼀次循环的初始值,最后将这个结果返回。
如果没有初始值,则reduce会将数组的第⼀个元素作为循环开始的初始值,第⼆个元素开始执⾏回调函数。
最常⽤、最简单的场景,是数组元素的累加、累乘。
reduce⽅法不改变原数组
六、for of⽅法
es6新增了interator接⼝的概念,⽬的是对于所有数据结构提供⼀种统⼀的访问机制,这种访问机制就是for of。
即:所有有interator接⼝的数据,都能⽤for of遍历。常见的包括数组、类数组、Set、Map等都有interator接⼝。
如果想⽤for of的⽅法遍历数组,⼜想⽤Index,可以⽤for of遍历ies()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论