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 相关文章推荐
jQuery 页面 Mask实现代码
Jan 09 Javascript
用JS提交参数创建form表单在FireFox中遇到的问题
Jan 16 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
Aug 15 Javascript
javascript递归回溯法解八皇后问题
Apr 22 Javascript
JavaScript使用DeviceOne开发实战(三)仿微信应用
Dec 02 Javascript
原生js图片轮播效果实现代码
Oct 19 Javascript
学习vue.js计算属性
Dec 03 Javascript
AngularJS实现网站换肤实例
Feb 19 Javascript
js获取json中key所对应的value值的简单方法
Jun 17 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
Nov 21 Javascript
Vue-Router的使用方法
Sep 05 Javascript
jQuery实现手风琴效果(蒙版)
Jan 11 jQuery
浅谈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
php+mysqli批量查询多张表数据的方法
2015/01/29 PHP
javascript 获取表单file全路径
2009/12/31 Javascript
js登录弹出层特效
2014/03/07 Javascript
判断字符串的长度(优化版)中文占两个字符
2014/10/30 Javascript
JavaScript实现的一个计算数字步数的算法分享
2014/12/06 Javascript
jQuery滚动条插件nanoscroller使用指南
2015/04/21 Javascript
浅谈使用MVC模式进行JavaScript程序开发
2015/11/10 Javascript
JavaScript进阶练习及简单实例分析
2016/06/03 Javascript
js倒计时简单实现代码
2016/08/11 Javascript
angularjs实现文字上下无缝滚动特效代码
2016/09/04 Javascript
jquery replace方法去空格
2017/05/08 jQuery
基于vue实现一个禅道主页拖拽效果
2019/05/27 Javascript
layui监听单元格编辑前后交互的例子
2019/09/16 Javascript
[02:45]2016年中国刀塔全程回顾,完美“圣”典即将上演
2016/12/15 DOTA
Python中的hypot()方法使用简介
2015/05/18 Python
Python requests发送post请求的一些疑点
2018/05/20 Python
python正向最大匹配分词和逆向最大匹配分词的实例
2018/11/14 Python
python config文件的读写操作示例
2019/09/27 Python
Python通过递归获取目录下指定文件代码实例
2019/11/07 Python
Pandas操作CSV文件的读写实现方法
2019/11/13 Python
flask实现验证码并验证功能
2019/12/05 Python
python异常处理之try finally不报错的原因
2020/05/18 Python
Python logging模块进行封装实现原理解析
2020/08/07 Python
python高级特性简介
2020/08/13 Python
DRF使用simple JWT身份验证的实现
2021/01/14 Python
北卡罗来纳州豪华家具和家居装饰店:Carolina Rustica
2018/10/30 全球购物
DNA测试:Orig3n
2019/03/01 全球购物
高中三年学习生活的自我评价
2013/10/10 职场文书
致铅球运动员加油稿
2014/02/13 职场文书
保密承诺书
2014/03/27 职场文书
大学生就业自荐书
2014/06/16 职场文书
毕业大学生自荐信
2014/06/17 职场文书
2014年科普工作总结
2014/12/06 职场文书
表扬信格式模板
2015/05/05 职场文书
nodejs利用readline提示输入内容实例代码
2021/07/15 NodeJs
MySQL深度分页(千万级数据量如何快速分页)
2021/07/25 MySQL