js中对数组进行遍历都有哪些方法_js遍历json对象

js中对数组进行遍历都有哪些方法_js遍历json对象遍历有如下几种方式数组方法mapforEachfilterfindfindIndexeverysomereducereduceRight其他方法forforinforof数组方法map核心创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。不改变原数组返回值是一个新的数组lettestArr=[‘子项0′,’子项1′,’子项2’];letresultArr=t…

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

Jetbrains全系列IDE稳定放心使用

c1a9acfe997cb2481b4c3a484475f62e.png

遍历有如下几种方式

数组方法

map

forEach

filter

find

findIndex

every

some

reduce

reduceRight

其他方法

for

for in

for of

数组方法

map

核心

创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果。

不改变原数组

返回值是一个新的数组

let testArr = [‘子项0′,’子项1′,’子项2’];

let resultArr= testArr.map((item, index) =>{return`处理·${item}`

});

console.log(resultArr);//结果: [“处理·子项0”, “处理·子项1”, “处理·子项2”]

缺陷

可以使用return,但是不能使用break和continue

forEach

核心

对数组的每个元素执行一次提供的函数。

总是返回undefined。

不改变原数组

let testArr = [‘子项0′,’子项1′,’子项2’];

testArr.forEach((item, index)=>{return`forEach处理${item}`

});

缺陷

可以使用return,但是不能使用break和continue

filter

核心

对数组的每一项都进行过滤,返回符合条件的item组成的数组

不会改变原数组

let filterArr = [‘子项0′,’子项1′,’子项2’];

let filterResult= filterArr.filter((item, index) =>{return item === ‘子项0’;

});

console.log(filterArr);//[“子项0”, “子项1”, “子项2”]

console.log(filterResult); [“子项0”]

缺陷

可以使用return,但是不能使用break和continue

find

核心

遍历数组,找到第一个符合条件的项,并返回该项。否则返回undefined

不会改变数组

let findArr = [‘子项0′,’子项1′,’子项2’]

let findResult= findArr.find((item, index) =>{return item === ‘子项0’;

});

console.log(findResult);//结果为: 子项0

缺陷

可以使用return,但是不能使用break和continue

findIndex

核心

遍历数组找到第一个符合条件的项,并返回该项的索引值。否则返回-1。

不会改变数组对象。

let findIndexArr = [‘子项0′,’子项1′,’子项2’];

let findIndexResult= findIndexArr.findIndex((item, index)=>{return item === ‘子项0’;

});

console.log(findIndexResult);//结果为: true

缺陷

可以使用return,但是不能使用break和continue

every

核心

对数组中的每一项运行给定函数,如果该函数对每一项返回true,则返回true。简单说就是看数组的每个元素是否符合要求,都符合则返回true,否则返回false

let everyArr = [2,3,4];

let everyResult= everyArr.every((item, index)=>{return item > 0});

console.log(everyResult);//结果为: true

缺陷

可以使用return,但是不能使用break和continue

some

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

let someArr = [2,3,4];

let someResult= someArr.some((item, index)=>{return item > 3});

console.log(someResult);//结果为: true

缺陷

可以使用return,但是不能使用break和continue

reduce

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

第二个参数作为第一次调用的a的值

//reducer

let reduceArr = [0,1,2,3,4]

let reduceResult= reduceArr.reduce((a, b)=>{return a +b;

});

console.log(reduceResult);//结果: 10

缺陷

可以使用return,但是不能使用break和continue

reduceRight

和reduce一样是累加器,不过是从右往左计算

第二个参数作为第一次调用的a的值

let reduceRightArr = [0,1,2,3,4]

let reduceRightResult= reduceRightArr.reduceRight((a, b)=>{return a +b;

});

console.log(reduceRightResult);//结果: 10

缺陷

可以使用return,但是不能使用break和continue

其他方法

for循环

核心

使用临时变量,并且遍历的是key.

let testArr = [‘子项0′,’子项1′,’子项2’];for(var i = 0; a < testArr.length; i++){

console.log(testArr[i]);

}

缺陷

可以正常使用使用break和continue, 但是不能正常使用return

let testArr = [‘子项0′,’子项1′,’子项2’];//break

for(var i = 0; i < testArr.length; i++) {if(i === 1) {break;

}

console.log(testArr[i]);

}//结果为: 子项0

//continue

for(var i = 0; i < testArr.length; i++) {if(i === 1) {continue;

}

console.log(testArr[i]);

}//结果为: 子项0 子项目2

//return

for(var i = 0; i < testArr.length; i++) {if(i === 1) {return;

}

console.log(testArr[i]);

}//结果为什么也没有

for in循环

核心

遍历的是key

let testArr = [‘子项0′,’子项1′,’子项2’];for(let i intestArr){

console.log(testArr[i])

}

缺陷

可以正常使用使用break和continue, 但是不能正常使用return

let testArr = [‘子项0′,’子项1′,’子项2’];//break

for(let i intestArr){if(i === 1) {break;

}

console.log(testArr[i]);

}//结果为: 子项0

//continue

for(let i intestArr){if(i === 1) {continue;

}

console.log(testArr[i]);

}//结果为: 子项0 子项目2

//return

for(let i intestArr){if(i === 1) {return;

}

console.log(testArr[i]);

}//结果为什么也没有

for of循环

核心

遍历的是value

let testArr = [‘子项0′,’子项1′,’子项2’];for(let i of testArr) {

console.log(i);

}

缺陷

可以正常使用使用break和continue, 但是不能正常使用return

let testArr = [‘子项0′,’子项1′,’子项2’];//break

for(let value of testArr){if(value === ‘子项1’){break;

}

console.log(value);

}//结果为: 子项0

//continue

for(let value of testArr){if(value === ‘子项1’){continue;

}

console.log(value);

}//结果为: 子项0 子项目2

//return

for(let value of testArr){if(value === ‘子项1’){return;

}

console.log(value);

}//结果为什么也没有

注意⚠️

数组方法都不可以用break和continue,for循环之类的不可以用return但是可以正常使用break和continue

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

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

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


相关推荐

  • 32.HttpRequest对象的学习

    32.HttpRequest对象的学习引言——在前面你也跟着本博主编写了那么多的视图函数,但是每个视图函数它都会接收一个名为request的参数。是不是很好奇:视图函数接收到的request到底是个什么对象!!!HttpRequest对象1.我们可以打印这个request对象,看一下:<WSGIRequest:GET’/music/test3/’>我们知道WSGIRequest是一个HTTP请求对象,里面包括了提交的方式和URL路径。综上可知:服务器接收到http协议的请求后,会根据报文创建HttpReq.

    2022年6月30日
    22
  • layer弹出图片的问题

    layer弹出图片的问题

    2021年10月28日
    69
  • 流程引擎概念_虚幻引擎4

    流程引擎概念_虚幻引擎4目录一、流程定义二、查询流程定义三、ID与版本四、挂起流程定义五、流程实例六、执行七、活动实例八、任务与任务定义本部分说明了流程引擎的概念一、流程定义流程定义定义了流程的结构。CamundaBPM使用BPMN2.0作为主要的建模语言,可以将BPMN2.0XML格式部署到流程引擎中。二、查询流程定义List<ProcessDefinition>processDefinitions=repositoryService.createP

    2022年10月20日
    6
  • jsp中使用My97日期控件报 “IE中 无法打开internet站点 。。。。。已终止操作” 的解决办法

    jsp中使用My97日期控件报 “IE中 无法打开internet站点 。。。。。已终止操作” 的解决办法除了使用4.5以上版本外,将 “>加在my97的js文件引用的后面 “>

    2022年5月29日
    33
  • 学习 SQL计算机语言(基础)

    学习 SQL计算机语言(基础)简介:SQL是用于访问和处理数据库的标准的计算机语言。结构化查询语言(StructuredQueryLanguage)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。什么是SQL:1)指结构化查询语言2)使我们有能力访问数据库3)是一种ANSI的标准计算机语言作用:1)面向数…

    2022年9月27日
    4
  • 活动图求最少时间和松弛时间

    活动图求最少时间和松弛时间一、介绍PERT(Program/ProjectEvaluationandReviewTechnique)即计划评审技术,PERT是利用网络分析制定计划以及对计划予以评价的技术。构造PERT图,需要明确四个概念:事件、活动、松弛时间和关键路线。1、事件(Events)表示主要活动结束的那一点;2、活动(Activities)表示从一个事件到另一个事件之间的过程;3…

    2022年5月30日
    38

发表回复

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

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