JavaScript遍历循环
定义一个数组和对象
const arr = ['a', 'b', 'c', 'd', 'e', 'f']; const obj = { a: 1, b: 2, c: 3, d: 4 }
for()
经常用来遍历数组元素
遍历值为数组元素索引
for (let i = 0, len = arr.length; i < len; i++) { console.log(i); // 0 1 2 3 4 5 console.log(arr[i]); // a b c d e f }
forEach()
用来遍历数组元素
第一个参数为数组元素,第二个参数为数组元素索引,第三个参数为数组本身(可选)
没有返回值
arr.forEach((item, index) => { console.log(item); // a b c d e f console.log(index); // 0 1 2 3 4 5 })
map()
用来遍历数组元素
第一个参数为数组元素,第二个参数为数组元素索引,第三个参数为数组本身(可选)
有返回值,返回一个新数组
every(),some(),filter(),reduce(),reduceRight()不再一一介绍
let arrData = arr.map((item, index) => { console.log(item); // a b c d e f console.log(index); // 0 1 2 3 4 5 return item; }) console.log(arrData); // ["a", "b", "c", "d", "e", "f"]
for...in
可循环对象和数组,推荐用于循环对象
1.循环值为对象属性
for (let key in obj) { if (obj.hasOwnProperty(key)) { console.log(key); // a b c d 属性 console.log(obj[key]); // 1 2 3 4 属性值 } }
2.值为数组索引
for (let index in arr) { console.log(index); // 0 1 2 3 4 5 数组索引 console.log(arr[index]); // a b c d e f 数组值 }
当我们给数组添加一个属性name
arr.name = '我是自定义的属性'
for (let index in arr) { console.log(index); // 0 1 2 3 4 5 name (会遍历出我们自定义的属性) console.log(arr[index]); // a b c d e f 我是自定义属性name }
for...of
可循环对象和数组,推荐用于遍历数组
1.遍历值为数组元素
for (let value of arr) { console.log(value); // a b c d e f 数组值 }
2.遍历对象时须配合Object.keys()
一起使用,直接用于循环对象会报错,不推荐使用for...of循环对象
循环值为对象属性
for (let value of Object.keys(obj)) { console.log(value); // a b c d 对象属性 }
总结
- 用于遍历数组元素使用:for(),forEach(),map(),for...of
- 用于循环对象属性使用:for...in
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
百亿级企业级 RPC 框架开源了!
今天给大家介绍给一款性能卓越的 RPC 开源框架,其作者就是我推荐每个 Java 程序员都应该看的《Java 生态核心知识点整理》的原作者张玉龙。 说实话我第一次看到这个资料的时候,就感觉作者是一位真正的技术爱好者,后来通过朋友介绍终于认识了他。交谈之中得知他在美团工作,最初和朋友一起整理这份资料的初衷是为了面试,估计每天需要面试太多的应聘者,这份资料成了助手。强烈建议没有看这份资料的同学学习下,作为 Java 生态知识体系构建也是一份不错的资源。 后来得知业余时间他在研发一款开源的 RPC 开源框架,并且经过测试可支持百亿级别的调用,并且于近期终于完成推出 1.0 版本。这款开源软件名字叫做 Koalas,源代码地址:koalas-rpc,下面对这款开源软件做详细介绍,内容来源于 Koalas 。 Koalas 介绍 企业生产级百亿日 PV 高可用可拓展的 RPC 框架。理论上并发数量接近服务器带宽,客户端采用 thrift 协议,服务端支持 netty 和 thrift 的 TThreadedSelectorServer 半同步半异步线程模型,支持动态扩容,服务上下线,权重动态,可...
- 下一篇
Redis闲谈(1):构建知识图谱
场景:Redis面试 (图片来源于网络) 面试官: 我看到你的简历上说你熟练使用Redis,那么你讲一下Redis是干嘛用的? 小明: (心中窃喜,Redis不就是缓存吗?)Redis主要用作缓存,通过内存高效地存储非持久化数据。 面试官: Redis可以用作持久化的存储吗? 小明 :嗯...应该可以吧... 面试官: 那Redis怎么进行持久化操作呢? 小明:嗯...不是太清楚。 面试官: Redis的内存淘汰机制有哪些? 小明:嗯...没了解过 面试官:我们还可以用Redis做哪些事情?分别利用了Redis的哪个指令? 小明:我只知道Redis还可以做分布式锁、消息队列... 面试官:好了,我们进入下一个话题... 思考:很明显,小明同学在面试过程中关于Redis的表现和回答肯定是比较失败的。Redis是我们工作中每天都会使用到的东西,为什么一到面试却变成了丢分项呢? 作为开发者,我们习惯了使用大神们已经封装好的东西,以此保障我们能够更专注于业务开发,却不知道这些常用工具的底层实现是什么,因此尽管平时应用起来得心应手,但一到面试还是无法让面试官眼前一亮。 本文总结了一些Redis的...
相关文章
文章评论
共有0条评论来说两句吧...