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

  • 公司油票怎么抵扣
  • 公司不营业需要做年报吗
  • 调整多计提所得税的分录
  • 土地摊销计入在建工程吗
  • 注册资金印花税减半政策
  • 银行对账单用英语怎么说
  • 办理产权证费用明细
  • 小微企业银行贷款印花税
  • 应收账款无法收回分录
  • 一般纳税人首次领票能领多少
  • 留底进项税额办理退税需要什么手续
  • 开增值税专票交多少税费
  • 政府机关有纳税识别号吗
  • 2020金税四期上线
  • 加油的普票可以抵扣进项税吗
  • 房地产开发经营企业确认当期因销售房地产
  • 付现所得税体现在哪方面
  • 现金流量表的余额和资产负债表货币资金是不是一定相等
  • 非营利组织属于企业吗
  • 工程款分配方式
  • macbook截图快捷键没反应
  • 以公司名义购买房产的利与弊
  • php字符串操作函数
  • 赔偿金要交增值税吗
  • 公司融资a轮说明什么
  • 在php中,字符串有哪些表示形式
  • 给客户回扣如何做账
  • 典当行交易是给现金吗
  • 纳税调整增加额怎么做会计分录
  • 旧房屋转卖的协议怎么写
  • 盈余公积转增资本对会计要素的影响
  • 长期股权投资顺逆流交易的损益调整
  • 生产企业可以抵扣进项税的
  • pytorch train()
  • 个人所得税现金流量表属于哪一项
  • 金税盘全额抵扣分录
  • 行政事业单位其他应收款核销分录
  • 在Python中如何求坐标中的任意两个点的距离
  • mac安装mysql8.0
  • 银行业的利润率
  • 厂房办公用品费用怎么算
  • 专用发票超过360天未认证
  • sql server 实现数据值加一减一
  • sqlserver数据库备份
  • 国际货运代理一个月大概有多少收入
  • 计提坏账准备资产总额会减少吗
  • 小规模纳税人公转私技巧
  • 重大水利工程建设
  • 季度盈利弥补以前年度亏损的账务处理
  • 没有发票只有收据可以入账吗
  • 与其他公司合伙协议书
  • 跨国公司国内外发展现状
  • 公账钱怎么取出
  • 公司现金收入存入私人老板账户
  • perl -ne
  • 安装完成后如何检验安装的部分是否符合安装工艺
  • sql server中通过查询分析器实现数据库的备份与恢复方法分享
  • mysql安装与配置的步骤与常用命令
  • sqlserver数据库事物日志已满
  • ghost读取不到硬盘
  • window终端是什么
  • win7系统怎样设置
  • linux find 命令详解
  • tracert命令的功能和用法
  • windows7文件操作步骤
  • win10 升级系统
  • Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
  • Ver、Vol、Ctty命令的使用教程
  • python的理解
  • node 操作mysql
  • shell脚本 su
  • js操作对象的方法
  • Android自定义标签选择面板,自定义ViewGroup
  • vue瀑布流实现
  • flask框架下使用scrapy框架
  • python安装心得
  • jquery选择器的作用
  • 废旧物资税务风险评估
  • 税务处理决定书属于行政处罚吗
  • 个体工商户税收起征点是多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设