1.for循环

使用临时变量,将长度缓存起来,避免重复获取数组长度,当数组较大时优化效果才会比较明显。

for(j = 0, j < arr.length; j++) {}

2.forEach循环

遍历数组中的每一项,没有返回值,对原数组没有影响,不支持IE

//没有返回值
arr.forEach((item,index,array)=>{//执行代码
})

参数:value数组中的当前项, index当前项的索引, array原始数组;

数组中有几项,那么传递进去的匿名回调函数就需要执行几次;


3.map循环

有返回值,可以return出来;map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了)

var ary = [12,23,24,42,1];
var res = ary.map(function (item,index,ary ) { return item*10;
})
console.log(res);//-->[120,230,240,420,10];  原数组拷贝了一份,并进行了修改
console.log(ary);//-->[12,23,24,42,1];  原数组并未发生变化

4.forof遍历

可以正确响应break、continue和return语句

for (var value of myArray) {
console.log(value);
}

5.filter遍历

不会改变原始数组,返回新数组

var arr = [{ id: 1, text: 'aa', done: true },{ id: 2, text: 'bb', done: false }
]
console.log(arr.filter(item => item.done))

6.every遍历

every()是对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true

var arr = [ 1, 2, 3, 4, 5, 6 ];
console.log( arr.every( function( item, index, array ){ return item > 3; }));
false

7.some遍历

some()是对数组中每一项运行指定函数,如果该函数对任一项返回true,则返回true。

var arr = [ 1, 2, 3, 4, 5, 6 ]; console.log( arr.some( function( item, index, array ){ return item > 3; }));
true

8.reduce

reduce()方法接收一个函数作为累加器(accumulator),数组中的每个值(从左到右)开始缩减,最终为一个值。

var total = [0,1,2,3,4].reduce((a, b)=>a + b); //10

reduce接受一个函数,函数有四个参数,分别是:上一次的值,当前值,当前值的索引,数组

[0, 1, 2, 3, 4].reduce(function(previousValue, currentValue, index, array){return previousValue + currentValue;
});


9. find方法

find()方法返回数组中符合测试函数条件的第一个元素。否则返回undefined

var stu = [{name: '张三', gender: '男', age: 20},{name: '王小毛',gender: '男', age: 20},{name: '李四',gender: '男', age: 20}
]function getStu(element){return element.name == '李四'
}stu.find(getStu)//返回结果为
//{name: "李四", gender: "男", age: 20}

Es6方法

stu.find((element) => (element.name == '李四'))

10.keys,values,entries

ES6 提供三个新的方法 —— entries(),keys()和values() —— 用于遍历数组。它们都返回一个遍历器对象,可以用for...of循环进行遍历,唯一的区别是keys()是对键名的遍历、values()是对键值的遍历,entries()是对键值对的遍历

for (let index of ['a', 'b'].keys()) {
console.log(index);
}
// 0
// 1
for (let elem of ['a', 'b'].values()) {
console.log(elem);
}
// 'a'
// 'b'
for (let [index, elem] of ['a', 'b'].entries()) {
console.log(index, elem);
}
// 0 "a"
// 1 "b"

js数组遍历方法总结相关推荐

  1. js 数组遍历方法详解(map、filter、find、findIndex、reduce)

    目录 前言 map map是什么 map方法的结构及入参 语法糖 map一般不改变原数组 filter 说明 例子 find 和 findIndex 说明 例子 reduce 说明 例子 尾言 前言 ...

  2. js数组遍历方法总结与对比

    目录 总结 一.常规方法 for的4种写法 while 二.ES6方法 for...of,得到每项元素 for...in,得到的是数组索引 三.数组实例上的遍历方法 forEach(),得到每一项元素 ...

  3. js数组遍历方法及其区别

    1.for循环 支持break和continue const arr = [1, 2, 3, 4, 5] for (let i = 0; i < arr.length; i++) {if (ar ...

  4. ES5和ES6数组遍历方法详解

    ES5和ES6数组遍历方法详解 在ES5中常用的10种数组遍历方法: 1.原始的for循环语句 2.Array.prototype.forEach数组对象内置方法 3.Array.prototype. ...

  5. JS数组遍历的几种方式

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...

  6. JS数组去重方法记录

    js数组去重方法 1.遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组 代码如下(示 例): function getArray(ar) {va ...

  7. js数组遍历和对象遍历

    针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历:还有性能,优缺点等. JS数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9];for ( v ...

  8. 转→js数组遍历 千万不要使用for...in...

    看到一篇内容还不错,但是排版实在糟糕, 逼死强迫症患者啊,直接拉下去找原文连接,找到了,但是已经消失了···500错误... 第一次因为实在看不下去一篇博客的排版, 为了排版而转载... 转载地址:h ...

  9. JS遍历(循环)——JS对象遍历(循环)JS数组遍历(循环)

    最近在处理一些偏逻辑的代码块经常遇到遍历问题,接下来跟大家一起温习一下有关于JS的遍历吧. js数组遍历 1.for循环 //不缓存 var arr = [5,2,0,1,3,1,4]; for ( ...

最新文章

  1. 深度丨人工智能和大数据的关系及中国在AI领域如何赶超世界
  2. 不受微软待见的Python,如何在八年内逆袭成功?
  3. Android之网络请求提示Cleartext HTTP traffic to dev*******.com not permitted
  4. HarmonyOS常见问题解答
  5. Java学习笔记2.3.2 运算符与表达式 - 赋值运算符
  6. 计算机等级考试在校生变成社会考生,关于开展2021年9月份全国计算机等级考试(NCRE)报名工作通知...
  7. [Java] 蓝桥杯ALGO-139 算法训练 s01串
  8. 阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景... 1
  9. Levenshtein编辑距离C++实现
  10. vue如何把html转换word,vue前端html导出word文档
  11. sow 项目范围说明书的区别
  12. jetson tk1开发(4)-tensorflow安装与配置
  13. 瘦,是一种信仰。轻,是一种理想
  14. 第11期:Hadoop零基础学习路线
  15. 菜鸟Django--更改和删除
  16. 基于AIC评价指标的逐步回归Python语言实现
  17. nmea-0183数据处理matlab,Matlab分析NMEA0183报文源代码(含高斯6度带投影计算)
  18. Visual Studio2019完全卸载方法
  19. 2021 OceanBase 数据库大赛来袭!邀你改编世界,码出未来
  20. 服务器程序运行的相关操作

热门文章

  1. 当OTT打通用户体验的“最后一公里”,酷开科技的大屏故事又有了新说法
  2. 华为云桌面Workspace,让云上工作更高效
  3. RocketMQ—苹果mac电脑os系统单节点安装下载RocketMQ步骤
  4. 一款轻巧快速的跨平台文档阅读器
  5. 版本控制利器——changelog
  6. vue2和vue3有啥区别,vue3的优点有哪些?
  7. 【java】java: -source 1.5 中不支持 diamond 运算符
  8. OBS源码分析--视频采集显示
  9. Solidity学习记录——第二章
  10. 图大杀猫:数据可视化的真善美