js数组遍历方法总结
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数组遍历方法总结相关推荐
- js 数组遍历方法详解(map、filter、find、findIndex、reduce)
目录 前言 map map是什么 map方法的结构及入参 语法糖 map一般不改变原数组 filter 说明 例子 find 和 findIndex 说明 例子 reduce 说明 例子 尾言 前言 ...
- js数组遍历方法总结与对比
目录 总结 一.常规方法 for的4种写法 while 二.ES6方法 for...of,得到每项元素 for...in,得到的是数组索引 三.数组实例上的遍历方法 forEach(),得到每一项元素 ...
- js数组遍历方法及其区别
1.for循环 支持break和continue const arr = [1, 2, 3, 4, 5] for (let i = 0; i < arr.length; i++) {if (ar ...
- ES5和ES6数组遍历方法详解
ES5和ES6数组遍历方法详解 在ES5中常用的10种数组遍历方法: 1.原始的for循环语句 2.Array.prototype.forEach数组对象内置方法 3.Array.prototype. ...
- JS数组遍历的几种方式
JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...
- JS数组去重方法记录
js数组去重方法 1.遍历数组,建立新数组,利用indexOf判断是否存在于新数组中,不存在则push到新数组,最后返回新数组 代码如下(示 例): function getArray(ar) {va ...
- js数组遍历和对象遍历
针对js各种遍历作一个总结分析,从类型用处:分数组遍历和对象遍历:还有性能,优缺点等. JS数组遍历: 1,普通for循环,经常用的数组遍历 var arr = [1,2,0,3,9];for ( v ...
- 转→js数组遍历 千万不要使用for...in...
看到一篇内容还不错,但是排版实在糟糕, 逼死强迫症患者啊,直接拉下去找原文连接,找到了,但是已经消失了···500错误... 第一次因为实在看不下去一篇博客的排版, 为了排版而转载... 转载地址:h ...
- JS遍历(循环)——JS对象遍历(循环)JS数组遍历(循环)
最近在处理一些偏逻辑的代码块经常遇到遍历问题,接下来跟大家一起温习一下有关于JS的遍历吧. js数组遍历 1.for循环 //不缓存 var arr = [5,2,0,1,3,1,4]; for ( ...
最新文章
- 深度丨人工智能和大数据的关系及中国在AI领域如何赶超世界
- 不受微软待见的Python,如何在八年内逆袭成功?
- Android之网络请求提示Cleartext HTTP traffic to dev*******.com not permitted
- HarmonyOS常见问题解答
- Java学习笔记2.3.2 运算符与表达式 - 赋值运算符
- 计算机等级考试在校生变成社会考生,关于开展2021年9月份全国计算机等级考试(NCRE)报名工作通知...
- [Java] 蓝桥杯ALGO-139 算法训练 s01串
- 阿里开发者们的第15个感悟:做一款优秀大数据引擎,要找准重点解决的业务场景... 1
- Levenshtein编辑距离C++实现
- vue如何把html转换word,vue前端html导出word文档
- sow 项目范围说明书的区别
- jetson tk1开发(4)-tensorflow安装与配置
- 瘦,是一种信仰。轻,是一种理想
- 第11期:Hadoop零基础学习路线
- 菜鸟Django--更改和删除
- 基于AIC评价指标的逐步回归Python语言实现
- nmea-0183数据处理matlab,Matlab分析NMEA0183报文源代码(含高斯6度带投影计算)
- Visual Studio2019完全卸载方法
- 2021 OceanBase 数据库大赛来袭!邀你改编世界,码出未来
- 服务器程序运行的相关操作