JavaScript循环遍历你会用哪些之小结篇


Posted in Javascript onSeptember 28, 2018

总结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()不再一一介绍,详细请看Js中Array方法有哪些?
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

可循环对象和数组,推荐用于循环对象

用于循环对象时

循环值为对象属性

for (let key in obj) {
  if (obj.hasOwnProperty(key)) {
    console.log(key);      // a b c d 属性
    console.log(obj[key]);  // 1 2 3 4 属性值
  }
}

用于遍历数组时

值为数组索引

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

可循环对象和数组,推荐用于遍历数组

用于遍历数组时

遍历值为数组元素

for (let value of arr) {
  console.log(value);    // a b c d e f 数组值
}

用于循环对象时

须配合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

以上所述是小编给大家介绍的JavaScript循环遍历你会用哪些小结篇,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript修改css样式style
Apr 15 Javascript
JavaScript Array Flatten 与递归使用介绍
Oct 30 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
Oct 23 Javascript
js 针对html DOM元素操作等经验累积
Mar 11 Javascript
js+CSS实现弹出居中背景半透明div层的方法
Feb 26 Javascript
初识Node.js
Mar 20 Javascript
javascript中sort排序实例详解
Jul 24 Javascript
最全面的百度地图JavaScript离线版开发
Sep 10 Javascript
详解node Async/Await 更好的异步编程解决方案
May 10 Javascript
解决element-ui中下拉菜单子选项click事件不触发的问题
Aug 22 Javascript
Javascript Web Worker使用过程解析
Mar 16 Javascript
nuxt.js 在middleware(中间件)中实现路由鉴权操作
Nov 06 Javascript
浅谈vue引用静态资源需要注意的事项
Sep 28 #Javascript
学习jQuery中的noConflict()用法
Sep 28 #jQuery
代码分析vue中如何配置less
Sep 28 #Javascript
使用JavaScript破解web
Sep 28 #Javascript
详解node字体压缩插件font-spider的用法
Sep 28 #Javascript
JS canvas绘制五子棋的棋盘
May 28 #Javascript
在vue中解决提示警告 for循环报错的方法
Sep 28 #Javascript
You might like
解javascript 混淆加密收藏
2009/01/16 Javascript
jquery dialog键盘事件代码
2010/08/01 Javascript
腾讯UED 漂亮的提示信息效果代码
2011/09/12 Javascript
js 手机号码合法性验证代码集合
2012/09/29 Javascript
使用按钮控制以何种方式打开新窗口的属性介绍
2012/12/17 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
原创jQuery弹出层插件分享
2015/04/02 Javascript
jquery获取url参数及url加参数的方法
2015/10/26 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
2016/04/26 Javascript
JavaScript接口的实现三种方式(推荐)
2016/06/14 Javascript
webpack入门必知必会
2017/01/16 Javascript
Vue单页式应用(Hash模式下)实现微信分享的实例
2017/07/21 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
layui表格 列自动适应大小失效的解决方法
2019/09/06 Javascript
[02:23]2018DOTA2亚洲邀请赛趣味视频——反应测试
2018/04/04 DOTA
python开发之文件操作用法实例
2015/11/13 Python
python实现发送邮件及附件功能
2021/03/02 Python
Python爬虫获取整个站点中的所有外部链接代码示例
2017/12/26 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
2018/11/07 Python
python基础教程之while循环
2019/08/14 Python
Python中的sys.stdout.write实现打印刷新功能
2020/02/21 Python
手把手教你将Flask应用封装成Docker服务的实现
2020/08/19 Python
美国高档百货Nordstrom的折扣店:Nordstrom Rack
2017/11/13 全球购物
世界上获奖最多的手机镜头:Olloclip
2018/03/03 全球购物
爱尔兰旅游网站:ebookers.ie
2020/01/24 全球购物
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
旅游管理专业个人求职信范文
2013/12/24 职场文书
心理健康心得体会
2014/01/02 职场文书
社区食品安全实施方案
2014/03/28 职场文书
教师学习八项规定六项禁令思想汇报
2014/09/27 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
事业单位个人总结
2015/02/12 职场文书
2015年科协工作总结
2015/05/19 职场文书
优秀毕业生主要事迹材料
2015/11/04 职场文书
Nginx跨域问题解析与解决
2022/08/05 Servers