数组遍历的几种方法及用法
一.for循环
for(let i = 0;i<arr.length;i++){console.log(arr[i])}
二.forEach方法
forEach是最简单、最常用的数组遍历方法,它提供一个回调函数,可用于处理数组的每一个元素,默认没有返回值
.不能使用return中止循环.使用break中止循环会报错
以上是个简单的例子,计算出数组中大于等于3的元素的个数。
回调函数的参数,第一个是处于当前循环的元素
,第二个是该元素下标
,第三个是数组本身
。三个参数均可选。
const array = [1, 2, 3, 4];
array.forEach((item,index,arr) => {item = item * 3
})
console.log(array); // [1,2,3,4]
三.map方法
map,从字面上理解,是映射,即数组元素的映射。它提供一个回调函数,参数依次为处于当前循环的元素、该元素下标、数组本身,三者均可选。默认返回一个数组,这个新数组的每一个元素都是原数组元素执行了回调函数之后的返回值。
map方法不改变原数组。
以上是一个简单的例子,把原数组的每一项乘以自身下标+1的数。
有返回值,可以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]; 原数组并未发生变化
四.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遍历arr.entries()
数组遍历的几种方法及用法相关推荐
- JavaScript 数组遍历的五种方法(转)
转自:JavaScript 数组遍历的五种方法 这篇文章主要介绍了JavaScript 数组遍历的五种方法,帮助大家更好的理解和学习使用JavaScript,感兴趣的朋友可以了解下 在使用 JavaS ...
- chararray遍历_数组遍历的三种方法
#import //数组遍历(枚举)对集合中的元素依此不重复的进行遍历 int main(int argc, const char * argv[]) { @autoreleasepool { NSA ...
- Shell数组遍历的三种方法及注意事项
遍历数组时,使用哪种方式取决于数组中元素的分布情况. 定义如下两个数组: #下标连续 arr1=(a b c d e) #下标不连续 arr2=([2]="a b" [5]=&qu ...
- Shell 数组遍历的3种方法
首先创建一个数组 array=( A B C D 1 2 3 4) 1.标准的for循环 for(( i=0;i<${#array[@]};i++)) do #${#array[@]}获取数组长 ...
- PHP数组遍历的五种方法
for 对于纯数字索引的数组可以通过for循环来遍历数组,但是要注意的是数字索引必须是连续的,否则会获取不到数组中的部分数据.遍历不受数组内部指针影响. <?php $ar1=range('a' ...
- shell 数组及其遍历的3种方法
1.shell数组 1.1.数组概述 数组中可以存放多个值.Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似). 与大部分编程语言类似,数组元素的下 ...
- JS数组遍历的几种方式
JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...
- java 数组效率_java数组复制的四种方法效率对比
有关数组的基础知识,有很多方面,比方说初始化,引用,遍历,以及一维数组和二维数组,今天我们先看看数组复制的有关内容. 来源于牛客网的一道选择题: JAVA语言的下面几种数组复制方法中,哪个效率最高? ...
- php 去重_php求两数组交集的四种方法详解
题目:给定两个数组,编写一个函数来计算它们的交集. 示例 1: 输入: nums1 = [1,2,2,1],nums2 = [2,2] 输出: [2] 示例 2: 输入: nums1 = [4,9,5 ...
最新文章
- KDE与GNOME的战争史(转载)
- Kotlin的基本数值类型问题:是对象?还是基本数据类型?
- 销售科目确认相关配置
- spring boot使用yaml替代properties
- 五十七、教用Python中的turtle海龟画图(下篇)
- PHP的is_numeric is_int is_integer ctype_digit
- java 回归遍历_回归基础:代码遍历
- 对ExtendedWebBrowser的再扩展
- [Z]在线版本控制之SubVersion与MyEclipse整合
- FANUC系统开发API(FOCAS2)pc应用开发,机加工领域
- 深度学习中的常用的归一化方法汇总
- 卷积神经网络原理详解
- 海洋主题绘画_海底世界主题儿童画绘画作品
- Part 2 如何进行埋点(内附埋点文档模板)
- 多传感器数据融合学习笔记
- 数据同步工具—SeaTunnel简介
- Cent OS 7命令积累(不定期更新)
- FBI阅人术——用最短的时间了解一个人
- matlab熔断器,Resilience4j 熔断器
- 判断奇偶的c语言程序设计教程课后答案,C语言程序设计实训教程习题和试验解答.doc...
热门文章
- 字、半字、字节的区别
- 会计账簿、会计账簿概述、会计账簿的启用与登记要求、会计账簿的格式和登记方法
- Canvas学习记录之drawImage
- 无线WiFi模块通信技术,WiFi技术方案应用,物联网智能发展
- 位域与union结构
- 计算机修复需要连接互联网么,怎么修复互联网连接 修复网络连接方法【介绍】...
- 【Java代码的运行过程】 ——每天一点小知识
- idea中大于等于,不等于、小于等于等等这些符号发生了变化
- Android中zip,tar.gz压缩与解压缩
- springboot大学生拼车管理系统 毕业设计-附源码201507