多语言展示
当前在线:616今日阅读:19今日分享:20

js遍历数组的三种方法

js数组遍历有很多种,各有特色,各有优缺点,使用的时候看场景使用咯,废话不多说,看例子。
工具/原料
1

chrome, firefox

2

JSbin

方法/步骤
2

方法一, 原生for循环法,最常用,使用简单,性能强悍, 顺序严格.var abc = ['范冰冰', '张钧甯', '张馨予', '蒋勤勤', '赵丽颖']var abcLen = abc.lengthfor(var i = 0; i < abcLen; i++){    console.log((i+1)+'号美女是:' + abc[i])}

3

方法二: 原生forEach循环, 此方法为数组自带方法, 使用方便, 性能稍弱, 遍历出来可能不能保留数组中的顺序.var abc = ['范冰冰', '张钧甯', '张馨予', '蒋勤勤', '赵丽颖']abc.forEach(function(value, key){  console.log((key+1)+'号美女是:' + value)})

4

方法三: 原生for...in循环, 既可以用于遍历数组, 也可以用于遍历对象, 性能低下.遍历出的数组下标是字符串型, 涉及计算需要转为数字型; 遍历时, key会越界, 会出错.var abc = ['范冰冰', '张钧甯', '张馨予', '蒋勤勤', '赵丽颖']for(var key in abc){  console.log((Number(key)+1)+'号美女是:' + abc[key])}console.log('================')var len = abc.lengthfor(var key in abc){   if(key < len)      console.log((Number(key)+1)+'号美女是:' + abc[key])}

5

方法四: 原生map方法, 使用优雅, 但性能不及forEach, 不适合严格顺序的遍历.

6

ES6中的方法: const abc = ['范冰冰', '张钧甯', '张馨予', '蒋勤勤', '赵丽颖']for(let value of abc){  console.log('美女:' + value)}console.log('==============')const str = abc.reduce(function(count, val, key){   return count + (key+1) + '号美女是:' + val + '\n'}, '')console.log(str)

7

各方法性能对比, 仅供参考, 具体以自身环境实测为准.

注意事项

使用时,考虑自身场景, 择需使用

推荐信息