遍历数组是任何一门语言必不可少的功能,本文主要介绍JavaScript中遍历数组的各种方法。
首先定义一个数组,如下图所示:
1、every函数:
arr.every(callback(currentValue, index, array)[, thisArg])
测试数组的所有元素是否都通过了指定函数的测试
callback 用来测试每个元素的函数。
thisArg 可选,如果为 every 提供一个 thisArg 参数,在该参数为调用 callback 时的 this 值。如果省略该参数,则 callback 被调用时的 this 值,在非严格模式下为全局对象,在严格模式下传入 undefined。
currentValue:元素值,index:元素的索引,array:原数组
every 不会改变原数组。当callback函数返回false时,循环结束,示例如下:
打印结果如下:
2、some函数:
arr.some(callback(currentValue, index, array)[, thisArg])
currentValue:元素值,index:元素的索引,array:原数组
some 不会改变原数组。与every不通的是,当callback函数返回true时,循环结束,示例如下:
打印结果如下:
3、forEach函数:
arr.forEach(callback(currentValue, index, array)[, thisArg])
为每个元素都执行callback函数,直接修改原数组,没有返回值,循环过程中不能停止,示例如下:
打印结果如下:
4、map函数:
arr.map(callback (currentValue, index, array)[, thisArg])
返回一个经过处理的新数组,不会破坏原来的数组,需要注意的是callback函数里面需要返回currentValue,也就是说map是通过每次循环返回的值作为元素组成新数组的jsreduce函数,并且在循环过程中不能停止,示例如下:
打印结果如下:
5、filter函数:
arr.filter(callback (element, index, arrArg)[, thisArg])
对数组中的每个元素都执行一次指定的函数(callback),并且创建一个新的数组,该数组元素是所有回调函数执行时返回值为 true 的原数组元素。示例如下:
打印结果如下:
6、reduce函数:
arr.reduce(callback(accumulator, currentValue, currentIndex, array), initialValue)
方法对累加器和数组中的每个元素 (从左到右)应用一个函数,将其减少为单个值,返回函数累计处理的结果。
参数说明:
callback:执行数组中每个值的函数,包含四个参数
accumulator 上一次调用回调返回的值,或者是提供的初始值(initialValue)
currentValue 数组中正在处理的元素
currentIndex 数据中正在处理的元素索引,如果提供了 initialValue ,从0开始;否则从1开始
initialValue 可选项,其值用于第一次调用 callback 的第一个参数。如果没有设置初始值,则将数组中的第一个元素作为初始值。空数组调用reduce时没有设置初始值将会报错。示例如下:
打印结果如下:
7、for循环:
for循环是使用频率较高的方法,效率也较高。数据量较大时,建议用此种方法。它可以通过break语句跳出循环,也可以通过continue语句跳过当前循环,示例如下:
打印结果如下:
需要注意的是for循环里面不支持return语句,如下写法会报错:
打印结果如下:
for方法还有两种变体如下,但是效率不高:
这种方式效率最低
需要ES6支持,性能要好于forin,但仍然比不上普通for循环
js数组遍历函数虽然比较多,但各有各的用途jsreduce函数,还希望大家在写项目代码的过程中多多尝试一下。如果不知选哪个,或者比较注重效率的话,最佳的选择还是普通for循环。
———END———
限 时 特 惠:本站每日持续更新海量各大内部创业教程,一年会员只需128元,全站资源免费下载点击查看详情
站 长 微 信:jiumai99