位置: IT常识 - 正文

JS总结——数组,对象遍历的方法(js数组方法大全)

编辑:rootadmin
JS总结——数组,对象遍历的方法

推荐整理分享JS总结——数组,对象遍历的方法(js数组方法大全),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:js数组方法总结,js数组方法总结,js数组常用操作,js的数组,js数组entries,js数组entries,js数组方法总结,js的数组,内容如对您有帮助,希望把文章链接给更多的朋友!

对于数组或者对象的遍历,筛选,提取等操作是前端开发中经常有的需求,不要再只会写普通的for循环了,虽然普通的for循环已经能完成一切的功能的,是一个特殊方法,但是针对各种需求,js给我们提供了许多方法,来更优雅的遍历,来学习一下吧!

1. for in

for in 循环,数组和对象都可以遍历,item为array的下标,或者object的key这样的代码,比起for循环可读性能强一些。

2.for of

与for in 不同的是,for of只能遍历数组,item为数组元素的值

3.Object.keys/values/entries

上面提到了for of无法遍历对象,那么我们还想通过for of遍历对象怎么办呢 那我们就可以用到以上三个方法了

var obj = { a:1, b:2, c:3, d:4, e:5 } console.log(Object.keys(obj)) console.log(Object.values(obj)) console.log(Object.entries(obj))

可见,for of无法遍历对象,但我们可以通过Object.keys/values/entries将对象的keys,values或者keys和values转化为数组,借此遍历

for(var key of Object.keys(obj)){ console.log(key) } for(var value of Object.values(obj)){ console.log(value) } for(var [key,value] of Object.entries(obj)){ console.log(key,value) }

至此,我们就用for of +Object.keys/values/entries将数组的keys或者values遍历出来了。

以下的forEach,map,filter,some和every可以一起记忆3.arr.forEachJS总结——数组,对象遍历的方法(js数组方法大全)

一下就都是遍历数组的方法了,如果想遍历对象,也同上的for of一样,将对象的keys或values转化为数组再进行遍历。

forEach的第一个参数是一个函数,可以是箭头函数,也可以是普通函数,看需求进行选择,该函数将在每一次数组元素被遍历时执行forEach的第二个参数是一个对象,如果指定了第二个参数,则**如果第一个参数是function,**function中的this会指向这个对象,如果第一个参数是箭头函数,那么由于箭头函数的特性,作用域将不会发生改变重点1: forEach第一个参数的函数中的传入的参数有三个分别为(item,index,arr),即数组当前数组的元素值,元素下标,和当前数组重点2:forEach没有返回值重点3:forEach不能使用break或continue关键字进行跳出循环,如果想跳出循环可以使用returnvar arr = [1,2,3,4,5]var obj = { a:1 }console.log( arr.forEach(function(item,index,arr){ console.log(item,index,arr) console.log(this)},obj)

4.arr.map

Map与forEach非常的用法非常相似,区别是forEach没有返回值,而Map有,使用Map可以返回一个与原数组有映射关系的数组

var arr = [1,2,3,4,5]var arr1 = arr.map(function(item,index,arr){ return item *2 }) console.log(arr1)

5.arr.filter

作用:过滤掉函数中返回false的元素

var arr = [1,2,3,4,5] var arr1 = arr.filter(function(item,index,arr){ if (index > 3) return true })

6.arr.some

作用:数组中只要有一个元素的返回值为true 返回值就为true,否则返回false

7.arr.every

作用:与arr.some刚好相反,数组中只要有一个元素的返回值为false,返回值就为false,只有全部返回值都为true,才返回true

8.arr.reduce

作用 :对数组进行遍历,返回一个值

重点1:reduce的第一个参数是一个函数,与前五个方法不同的是,此函数并非只有3个参数,而是由4个参数,分别为 (accumulator,currentValue,index,arr)如同其字面意思一样,这4个参数分别是累加器,当前元素值,当前元素下标,和整个数组重点2:reduce的第二个参数是一个值,该值为累加器的初始值,如果不指定初始值,则默认为0 var sum = [0,1,2,3,4].reduce(function(accumulator,currentValue,currentIndex,arr){ return accumulator + currentValue }) console.log(sum)

在数组的遍历过程中,累加器由每一个则执行的函数处理后传递给下一个执行的函数,最终返回出来。

本文链接地址:https://www.jiuchutong.com/zhishi/299150.html 转载请保留说明!

上一篇:Vue3如何封装组件?(vue封装组建)

下一篇:C#构建Web服务项目实战(一)(c#创建web)

  • 国家企业信用信息公示网官网

    国家企业信用信息公示网官网

  • 苹果13pro怎么关闭智能调整图像智能功能(苹果13pro怎么关闭自动更新)

    苹果13pro怎么关闭智能调整图像智能功能(苹果13pro怎么关闭自动更新)

  • 微信读书是免费的吗(微信读书免费会员)

    微信读书是免费的吗(微信读书免费会员)

  • 淘宝付完尾款退货定金退吗(淘宝付完尾款退货怎么办)

    淘宝付完尾款退货定金退吗(淘宝付完尾款退货怎么办)

  • 抖音的抖音钻卡怎么获得(抖音钻卡最不好得的是什么)

    抖音的抖音钻卡怎么获得(抖音钻卡最不好得的是什么)

  • 路由器搜不到wifi(路由器搜不到wifi怎么办)

    路由器搜不到wifi(路由器搜不到wifi怎么办)

  • qq语音图标白色是开还是关(qq语音图标白色是什么)

    qq语音图标白色是开还是关(qq语音图标白色是什么)

  • 远程操控对方电脑可以看到对方嘛(远程操控对方电脑显示黑屏怎么办)

    远程操控对方电脑可以看到对方嘛(远程操控对方电脑显示黑屏怎么办)

  • 拼多多月卡是自动续费吗(拼多多月卡是自动续费的吗?)

    拼多多月卡是自动续费吗(拼多多月卡是自动续费的吗?)

  • 华为手机怎么开反色(华为手机怎么开空调遥控器)

    华为手机怎么开反色(华为手机怎么开空调遥控器)

  • 苹果11副卡没信号(苹果副卡没信号但是有网络)

    苹果11副卡没信号(苹果副卡没信号但是有网络)

  • 支付宝扫码付款可以联系到对方吗(支付宝扫码付款怎么查记录)

    支付宝扫码付款可以联系到对方吗(支付宝扫码付款怎么查记录)

  • 为什么视频发不出(为什么视频发不到朋友圈里去?)

    为什么视频发不出(为什么视频发不到朋友圈里去?)

  • 华为应用分身qq文件夹在哪(华为应用分身权限)

    华为应用分身qq文件夹在哪(华为应用分身权限)

  • 手机侧面鼓起来了怎么回事(手机一侧鼓起来了)

    手机侧面鼓起来了怎么回事(手机一侧鼓起来了)

  • iphone11屏幕刷新率是多少(iphone11屏幕刷新率是多少赫兹)

    iphone11屏幕刷新率是多少(iphone11屏幕刷新率是多少赫兹)

  • qq群成员名片在哪里设置(qq群成员名片在哪禁言)

    qq群成员名片在哪里设置(qq群成员名片在哪禁言)

  • 苹果手机信号出现1x(苹果手机信号出现LTE是什么意思)

    苹果手机信号出现1x(苹果手机信号出现LTE是什么意思)

  • 抖音怎么屏蔽礼物特效(抖音怎么屏蔽礼物和弹幕)

    抖音怎么屏蔽礼物特效(抖音怎么屏蔽礼物和弹幕)

  • 表格中怎么插虚线(怎么在表格添加虚线)

    表格中怎么插虚线(怎么在表格添加虚线)

  • 微信我的行程在哪里(微信我的行程足迹)

    微信我的行程在哪里(微信我的行程足迹)

  • y93可以指纹支付吗(vivo y93有指纹付款功能吗?)

    y93可以指纹支付吗(vivo y93有指纹付款功能吗?)

  • u盘中毒有哪些症状?(u盘中毒症状)

    u盘中毒有哪些症状?(u盘中毒症状)

  • 【Pytorch项目实战】之语义分割:U-Net、UNet++、U2Net(pytorch开源项目)

    【Pytorch项目实战】之语义分割:U-Net、UNet++、U2Net(pytorch开源项目)

  • 【Vue】Vue简介、引入、命令式和声明式编程(vue的简介)

    【Vue】Vue简介、引入、命令式和声明式编程(vue的简介)

  • fast-rcnn详解(faster rcnn详解)

    fast-rcnn详解(faster rcnn详解)

  • 织梦dedecms提交自定义表单后发送到指定邮箱(将织梦dedecms转换到wordpress)

    织梦dedecms提交自定义表单后发送到指定邮箱(将织梦dedecms转换到wordpress)

  • 织梦dedecms做的网站首页标题篡改跳转赌博网站解决方案(织梦使用教程)

    织梦dedecms做的网站首页标题篡改跳转赌博网站解决方案(织梦使用教程)

  • 实收资本印花税按次还是按年
  • 增值税价外税是什么税种
  • 初中毕业可以考警察学校吗
  • 暂估入库收到发票后怎么做分录
  • 公司组织出去旅游主持词
  • 税额四舍五入的计算公式
  • 事业单位有那种
  • 收到商业承兑汇票到期,向银行办妥有关入账手续
  • 会计凭证借方和贷方怎么填
  • 应交税费应交增值税的三级科目有哪些
  • 快递行业的收入与成本
  • 可供出售金融资产改为什么科目
  • 应付工资可以挂账多长时间
  • 社平工资调整补差什么意思
  • 跨年的预付账款如何冲销
  • 混合销售行为如何界定
  • 所有者权益的利得和损失
  • 应交税费计提是借方还是贷方
  • 增值税专用发票验票
  • 以旧翻新视频
  • 收到汽车保险赔款怎么做账
  • 股权转让缴印花税公司用进账吗
  • 员工租赁宿舍开几个点发票
  • 是否启用税种综合申报
  • 非贸付汇税金承担
  • 申报补贴项目 审计
  • 搭建rtmp
  • 半成品月末账务处理
  • PHP:session_unset()的用法_Session函数
  • PHP:Memcached::prepend()的用法_Memcached类
  • PHP:pcntl_wait()的用法_PCNTL函数
  • 企业购买预付卡送人分录
  • 出售固定资产减免的税款账务处理
  • 善意取得虚开增值税专用发票处理
  • php执行系统命令函数
  • vue2 diff算法
  • 不良品扣款应入哪个科目
  • 暂估入账会计科目
  • 存货跌价准备科目余额在哪方
  • 工伤事故赔偿款分配
  • 原版小说推荐
  • 附有销售退回条件的商品销售
  • 企业所得税怎么算
  • sql删除表中的某一行
  • 企业信息联网核查系统的意义
  • 建筑租赁公司是什么意思
  • 跨月的凭证出错如何处理
  • 金融工具占比低
  • 发票上的印记能去掉吗
  • 小企业外币业务包括
  • 主营业务成本如何设置明细
  • 对外服务应收取的款项
  • 国有资产如何保值
  • 实缴增值税比计提增值税少怎么做账务处理
  • 企业退款给个人多久到账
  • 售后回租租赁合同买车有效吗
  • 新开公司没有领失业金
  • 安装mysql5.7虚拟机教程
  • window怎么操作
  • Xp系统设置ip地址
  • 盘古pg插件
  • centos怎么查看文件
  • win10怎样永久激活
  • rtc resume
  • win10系统浏览器怎么换成ie
  • win10不停的自动重启
  • cocos2dx schedule
  • JavaScript中的变量名不区分大小写
  • 基于jquery的框架有哪些
  • bat运行完后不退出
  • python中pyinstaller
  • 菜鸟 安卓
  • flask开发实例
  • NGUI之UIScrollView对齐
  • javascript 代码
  • 什么绑定什么服务
  • Easyui form combobox省市区三级联动
  • 上海个人到税务局怎么开票
  • 税法税收保全的适用范围
  • 邮政清关费用怎么算
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设