java遍历数组的各种方法_遍历数组的常用方法「建议收藏」

java遍历数组的各种方法_遍历数组的常用方法「建议收藏」1.最传统方法for循环1vararr=[“first”,”second”,”third”,”fourth”,3,5,8];2for(vari=0;i<arr.length;i++){3console.log(arr[i]);4}5//输出:6first7second8third9fourth10311512…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

1.最传统方法 for循环

1 var arr = [“first”,”second”,”third”,”fourth”,3,5,8];2 for(var i = 0; i < arr.length;i++){3 console.log(arr[i]);4 }5 //输出:

6 first7 second8 third9 fourth10 3

11 5

12 8

for… in

1 var arr = [“first”,”second”,’third’ ,”fourth”,3,5,8];2 for(var i inarr){3 console.log(arr[i] +’/’ +i);4 }5 //输出结果为:

6 first/0

7 second/1

8 third/2

9 fourth/3

10 3/4

11 5/5

12 8/6

for…of

1 var arr = [“first”,”second”,’third’ ,”fourth”,3,5,8];2 for(varitem of arr){3 console.log(item);4 }5 //输出结果:

6 first7 second8 third9 fourth10 3

11 5

12 8

虽然for… in 、 for… of 都能够变历数组,但是两者还是有很大区别的,先说结论:

两者的主要区别在于他们的迭代方式

推荐在循环对象属性的时候,使用for in,在遍历数组的时候推荐使用for of

for…in 循环出来的是key, for…of循环出来的是value

for…in 是ES5 标准,for …of 是ES6标准,兼容性可能存在些问题,请注意使用

for…of 不能遍历普通的对象,需要和Object.keys() 搭配使用

2.foreach方法:被传递给foreach的函数会在数组的每个元素上执行一次,元素作为参数传递给该函数

1 var arr = [“first”,”second”,”third”,”fourth”,3,5,8];2 //element 表示arr的单元项,index 表示arr单元项对应的索引值

3 arr.forEach(function(element,index){4 console.log(element + ‘/’ +index);5

6 })7 //输出结果:

8 first/0

9 second/1

10 third/2

11 fourth/3

12 3/4

13 5/5

14 8/6

注意:未赋值的值是不会在foreach循环迭代的,但是手动赋值为undefined的元素是会被列出的

1 var arr1 = [“first”,”second”, ,”fourth”,3,5,8];2 arr1.forEach(function(element,index){3 console.log(element + ‘/’ +index);4

5 })6 //输出结果

7 first/0

8 second/1

9 fourth/3

10 3/4

11 5/5

12 8/6

3.map 遍历数组,并通过callback对数组元素进行操作,并将所有操作结果放入数组中并返回该数组

1 var arr = [“first”,”second”,’third’ ,”fourth”];2 var arr2 = arr.map(function(item){3 returnitem.toUpperCase();4 })5 console.log(arr2);6 //输出:

7 [FIRST,SECOND,THIRD, FOURTH]

4.filter( )返回一个包含所有在回调函数上返回为true的元素新数组,回调函数在此担任的是过滤器的角色,当元素符和条件,过滤器就返回true,而filter则会返回所有符合过滤条件的元素

1 var arr = [“first”,”second”,’third’ ,”fourth”,3,5,8];2 var arr3 = arr.filter(function(item){3 if(typeof item == ‘number’){4 returnitem;5 }6 })7 console.log(arr3);8 //输出结果:

9 [3,5,8]

5. every() 当数组中的每一个元素在callback上被返回true时就返回true(注意:要求每一个单元项都返回true时才为true)

every()与filter()的区别是:后者会返回所有符合过滤条件的元素;前者会判断是不是数组中的所有元素都符合条件,并且返回的是布尔值

1 var arr = [“first”,”second”,’third’ ,”fourth”,3,5,8];2 var bol = arr.every(function(element){3 if(typeof element == ‘string’){4 returnelement;5 }6 })7 console.log(bol); //false

6.some()只要数组中有一项在callback上就返回true

every()与some()的区别是:前者要求所有元素都符合条件才返回true,后者要求只要有符合条件的就返回true

1 var arr = [“first”,”second”,’third’ ,”fourth”,3,5,8];2 var bol = arr.some(function(element){3 if(typeof element == ‘string’){4 returnelement;5 }6 })7 console.log(bol); //true

7.findindex() ES6数组新API,找到符合条件的索引并返回

1 var ages = [3, 10, 18, 20];2

3 functioncheckAdult(age) {4 return age >= 18;5 }

function(currentValue, index,arr)

参数currentValue:必需。当前元素

index:可选。当前元素的索引

arr:可选.当前元素所属的数组对象

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/192900.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • aop实现原理面试_aop ioc 面试怎么回答

    aop实现原理面试_aop ioc 面试怎么回答作用——用于处理系统中分布的各个模块的横切关注点(如:事务管理、日志、缓存等),是使用动态代理实现,在内存中临时为增强某个方法生成一个AOP对象,该对象含有目标对象的所有方法,在特定的切入点做了增强处理,并回调原来的方法。P:咋眼一看,不能直接理解很正常。动态代理的实现——主要分两种方式实现1、JDK动态代理原理说明——JDK动态管理通过反射接收被代理的类,该代理的类必须实现接口,核心是InvocationHandler和Proxy类。2、Cglib动态代理原理说明——Cglib通过.

    2022年9月2日
    5
  • Merkle Tree 概念

    Merkle Tree 概念

    2021年6月18日
    119
  • Callable和Runnable的区别「建议收藏」

    classcimplementsCallable<String>{ @Override publicStringcall()throwsException{ returnnull; } } classrimplementsRunnable{ @Override publicvoidrun(){ } }相同点:…

    2022年4月17日
    42
  • 初中基础学java_初中生也能学JAVA吗?[通俗易懂]

    初中基础学java_初中生也能学JAVA吗?[通俗易懂]初中生当然可以学java,初中正是学习力非常强的时期。如果你对计算机有兴趣,就去学啊。现在不是每个人都能明白自己的兴趣点在哪里的。但是由于孩子的年龄太小,自学能力的不足,找一个靠谱的学校从师而学才是正经的学习途径。北大青鸟沈阳三好就有专门为初中生开设的计算机课程,充分地体谅学生的学习情况以及学习基础,所以不用担心自己跟不上进度。Java自1995年问世以来,已历经21年的岁月。20年来,不管IT技…

    2022年7月7日
    27
  • SIFT–尺度空间、高斯金字塔

    SIFT–尺度空间、高斯金字塔尺度空间高斯金字塔高斯模糊下采样高斯金字塔的构造过程差分高斯金字塔构造过程SIFT成名已久,但理解起来还是很难的,一在原作者Lowe的论文对细节提到的非常少,二在虽然网上有许多相应博文,但这些博文云里雾里,非常头疼,在查看了许多资料了,下面贴出我自己的一些理解,希望有所帮助。Lowe把SIFT分为四个阶段:构建尺度空间、关键点的定位、方向分配、特征描述符。下面分别从这四个阶段来阐述。尺度空

    2022年10月14日
    3
  • C时间轮

    C时间轮看完了《linux高性能服务器编程》对里面的定时器很感兴趣。书中提到三种定时器,分别是:基于升序链表的定时器,基于时间轮的定时器,基于时间堆的定时器。三种定时器的实现书中均是给了C++代码,不过我对C++不太感兴趣,虽然现在在做C++开发,因此写了C版本的。书中定时器只给了封装的定时器类,没有给调用层代码,我是估摸着写了调用层代码。这里做个总结,以后可以翻翻:基于升序链表的定时器没太大难度,因此也懒

    2022年10月1日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号