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 相关文章推荐
一个js的tab切换效果代码[代码分离]
Apr 11 Javascript
showModelDialog弹出文件下载窗口的使用示例
Nov 19 Javascript
JS连接SQL数据库与ACCESS数据库的方法实例
Nov 21 Javascript
jquery ajax请求方式与提示用户正在处理请稍等
Sep 01 Javascript
为jQuery-easyui的tab组件添加右键菜单功能的简单实例
Oct 10 Javascript
Vue常用指令V-model用法
Mar 08 Javascript
jquery实现图片放大点击切换
Jun 06 jQuery
基于VUE.JS的移动端框架Mint UI的使用
Oct 11 Javascript
微信小程序实现收货地址左滑删除
Nov 18 Javascript
vue中created和mounted的区别浅析
Aug 13 Javascript
JS实现图片切换特效
Dec 23 Javascript
canvas多重阴影发光效果实现
Apr 20 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
教你php如何实现验证码
2016/01/20 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
laravel 输出最后执行sql 附:whereIn的使用方法
2019/10/10 PHP
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
javascript算法题 求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2012/07/21 Javascript
jquery无缝向上滚动实现代码
2013/03/29 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
Javascript排序算法之计数排序的实例
2014/04/05 Javascript
node.js中的fs.fchmodSync方法使用说明
2014/12/16 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
Bootstrap Table使用方法详解
2016/08/01 Javascript
Vue学习笔记进阶篇之vue-router安装及使用方法
2017/07/19 Javascript
基于canvas粒子系统的构建详解
2017/08/31 Javascript
ES6中Array.find()和findIndex()函数的用法详解
2017/09/16 Javascript
Nodejs+express+ejs简单使用实例代码
2017/09/18 NodeJs
解析Vue 2.5的Diff算法
2017/11/28 Javascript
js数组方法reduce经典用法代码分享
2018/01/07 Javascript
vue 项目中使用Loading组件的示例代码
2018/08/31 Javascript
浅谈发布订阅模式与观察者模式
2019/04/09 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
JS 5种遍历对象的方式
2020/06/16 Javascript
js操作两个json数组合并、去重,以及删除某一项元素
2020/09/22 Javascript
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
Python Pandas实现数据分组求平均值并填充nan的示例
2019/07/04 Python
使用tensorflow进行音乐类型的分类
2020/08/14 Python
皮肤科医师岗位职责
2013/12/04 职场文书
学校食堂采购员岗位职责
2013/12/05 职场文书
家长给老师的道歉信
2014/01/13 职场文书
2014全国两会学习心得体会1000字
2014/03/10 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
开票证明
2015/06/23 职场文书
中学教代会开幕词
2016/03/04 职场文书
同学联谊会邀请函
2019/06/24 职场文书
《成长的天空》读后感3篇
2019/12/06 职场文书