位置: 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)

  • 苹果手机怎么开美颜微信视频聊天(苹果手机怎么开美颜功能)

    苹果手机怎么开美颜微信视频聊天(苹果手机怎么开美颜功能)

  • 微信怎么换身份证实名认证(微信怎么换身份证实名认证没有银行卡)

    微信怎么换身份证实名认证(微信怎么换身份证实名认证没有银行卡)

  • iqooz5x怎么关闭5g

    iqooz5x怎么关闭5g

  • 微信怎么邀请对方成为监护人(微信怎么邀请对方赠送亲属卡)

    微信怎么邀请对方成为监护人(微信怎么邀请对方赠送亲属卡)

  • 电话号码是空号是怎么回事(电话号码是空号了怎么恢复)

    电话号码是空号是怎么回事(电话号码是空号了怎么恢复)

  • 手机老出现已启用缩放(手机已启动)

    手机老出现已启用缩放(手机已启动)

  • 安卓为什么越用越卡顿(安卓为什么越用越卡顿 知乎)

    安卓为什么越用越卡顿(安卓为什么越用越卡顿 知乎)

  • 一般电脑跑分多少合格

    一般电脑跑分多少合格

  • 防火墙分为哪三类(防火墙分为哪三类网络层防火墙)

    防火墙分为哪三类(防火墙分为哪三类网络层防火墙)

  • 微信怎么双向清除聊天记录(微信怎么双向清除照片记录)

    微信怎么双向清除聊天记录(微信怎么双向清除照片记录)

  • 小米8ud是探索版吗(小米8ud是探索版么)

    小米8ud是探索版吗(小米8ud是探索版么)

  • vivoy85手机充电慢怎么办(vivoy85手机充电越充越少)

    vivoy85手机充电慢怎么办(vivoy85手机充电越充越少)

  • 三星s10+耳机型号(三星s10耳机参数)

    三星s10+耳机型号(三星s10耳机参数)

  • ie如何管理加载项(ie浏览器管理加载项启动不了)

    ie如何管理加载项(ie浏览器管理加载项启动不了)

  • ipad可以加内存吗(ipad可以加内存容量吗)

    ipad可以加内存吗(ipad可以加内存容量吗)

  • 毒app不能用花呗怎么回事(毒可以用花呗分期吗)

    毒app不能用花呗怎么回事(毒可以用花呗分期吗)

  • word怎么增加目录(word怎么添加目录页)

    word怎么增加目录(word怎么添加目录页)

  • soul隐身怎么设置(soul上怎么设置隐身)

    soul隐身怎么设置(soul上怎么设置隐身)

  • 荣耀v30支持光学防抖吗(荣耀v30pro几倍光学)

    荣耀v30支持光学防抖吗(荣耀v30pro几倍光学)

  • 怎么修改网页时间(怎么修改网页时间提前看到内容)

    怎么修改网页时间(怎么修改网页时间提前看到内容)

  • 屏幕上的热点资讯怎么关(屏幕上的热点资讯怎么关华为手机)

    屏幕上的热点资讯怎么关(屏幕上的热点资讯怎么关华为手机)

  • 3+32g和4+32g有什么区别(3+32g和2+32g有什么区别)

    3+32g和4+32g有什么区别(3+32g和2+32g有什么区别)

  • word目录怎么自动生成(word目录怎么自动生成左对齐)

    word目录怎么自动生成(word目录怎么自动生成左对齐)

  • 华为p30home键在哪里设置(p30home键怎么设置)

    华为p30home键在哪里设置(p30home键怎么设置)

  • 苹果下载200限额怎么取消(苹果下载限制200m)

    苹果下载200限额怎么取消(苹果下载限制200m)

  • xr定位怎么关(iphone xr在哪里关闭定位)

    xr定位怎么关(iphone xr在哪里关闭定位)

  • 魅族屏幕旋转失灵(魅族手机旋转屏幕旋转不了怎么办)

    魅族屏幕旋转失灵(魅族手机旋转屏幕旋转不了怎么办)

  • 电脑桌面上的任务栏不见了怎么办(电脑桌面上的任务栏怎么隐藏)

    电脑桌面上的任务栏不见了怎么办(电脑桌面上的任务栏怎么隐藏)

  • 【Zabbix实战之部署篇】Zabbix客户端的安装部署方法

    【Zabbix实战之部署篇】Zabbix客户端的安装部署方法

  • 个人报销电话费怎么做分录
  • 个税APP如何修改密码
  • 中央空调折旧年限是多久
  • 税收优惠有哪些类型
  • 非独立核算分公司企业所得税
  • 增值税普通发票需要交税吗
  • 供应商价格折扣
  • 预交增值税附加税费减免吗
  • 上市公司现金分红对股价的影响
  • 预付款发票可以入费用吗
  • 转售的物业
  • 无形资产租赁税率多少
  • 企业并购重组有哪些
  • 年终奖扣税和工资扣税
  • 个人给公司付款怎么做分录
  • 民办非企业单位和私营单位的区别
  • 以前年度少计费用,调整分录
  • 耳机插在电脑上有滋滋的声音
  • 在Win7系统中,文件的属性包括
  • 应收账款平均余额怎么理解
  • u启动pe装机工具如何重装系统win10
  • window10玩吃鸡总崩溃
  • 定向增发后送股成本价
  • 房地产企业购地印花税如何入账
  • 结转所得税费用到本年利润的会计分录
  • 企业购入设备涉及的税种
  • 股权投资收益需要缴纳企业所得税吗
  • laravel入门与实战
  • allegro器件移动不了
  • 上月未开发票的销项税,已经申报缴税,在本月开了票,应该如何填报?
  • 网络安全技术
  • 单目深度估计算法
  • 路由加载的几种方式
  • vue路由的理解
  • 所得税预缴申报表
  • 当期可抵扣进项税额包括进项转出额吗
  • 进项加计抵减对账怎么做
  • CentOS 7下MySQL服务启动失败的快速解决方法
  • mysql数据库性能监控
  • SQLServer 2008 CDC功能实现数据变更捕获脚本
  • 主营业务成本的借贷方向
  • 政府补助的界定
  • 无形资产的会计准则的相关规定
  • 进口关税征收方法
  • 出口抵减内销产品应纳税额分录
  • 以汽车投资作为投资项目
  • 公司员工垫付款项
  • 账上的进项税额比申报多了怎么调账
  • 固定资产抵扣过处置还能简易计税吗
  • 合同章盖成公章
  • 材料采购成本的计算分录
  • mysql死锁的例子
  • SQLSERVER中union,cube,rollup,cumpute运算符使用说明
  • win2003 安装iis
  • 微软历代操作系统
  • win8系统怎么安装微信
  • 如何查看windows8.1版本
  • linux读取命令
  • 安装win7旗舰版变了家庭版
  • win10系统访问不了
  • win10系统office2007每次打开都要配置
  • linux删除一个非空子目录命令
  • linux的简单使用
  • 编辑器组件
  • mac 安卓系统
  • eclipse swt教程
  • socketio视频教程
  • jquery 输入框输入完触发事件
  • javascript总结笔记
  • python动态网页开发教程
  • 上海市税务局招聘
  • 个人所得税赡养老人可以填两个吗
  • 增值税归国家还是地方
  • 西安大修基金和契税怎么计算
  • 工会经费少申报一个月可以下个月补上吗
  • 郝姓家谱辈分查询
  • 贵州省高新区属于哪个县
  • 发票机如何打印文件
  • 预到船舶是什么
  • 增值税与个人的区别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设