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 获取radio按钮值的实例
Aug 17 Javascript
基于jQuery实现文本框缩放以及上下移动功能
Nov 24 Javascript
JavaScript实现将数组中所有元素连接成一个字符串的方法
Apr 06 Javascript
浅谈String.valueOf()方法的使用
Jun 06 Javascript
Bootstrap modal 多弹窗之叠加显示不出弹窗问题的解决方案
Feb 23 Javascript
Vue2.0实现购物车功能
Jun 05 Javascript
JQuery 获取Dom元素的实例讲解
Jul 08 jQuery
vue引入jq插件的实例讲解
Sep 12 Javascript
深入理解Vue 单向数据流的原理
Nov 09 Javascript
360doc网站不登录就无法复制内容的解决方法
Jan 27 Javascript
详解vue项目中实现图片裁剪功能
Jun 07 Javascript
Javascript组合继承方法代码实例解析
Apr 02 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
基于python发送邮件的乱码问题的解决办法
2013/04/25 PHP
PHP正则表达式过滤html标签属性(DEMO)
2016/05/04 PHP
php foreach如何跳出两层循环(详解)
2016/11/05 PHP
Ajax一统天下之Dojo整合篇
2007/03/24 Javascript
Javascript 获取滚动条位置等信息的函数
2009/09/08 Javascript
JSON中双引号的轮回使用过程中一定要小心
2014/03/05 Javascript
Node.js中的模块机制学习笔记
2014/11/04 Javascript
JS实现同时搜索百度和必应的方法
2015/01/27 Javascript
jquery实现的缩略图预览滑块实例
2015/06/25 Javascript
整理JavaScript创建对象的八种方法
2015/11/03 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
JavaScript实现修改伪类样式
2017/11/27 Javascript
安装vue-cli的简易过程
2018/05/22 Javascript
微信小程序实现城市列表选择
2018/06/05 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
vue-element-admin 菜单标签失效的解决方式
2019/11/12 Javascript
[04:32]DOTA2著名解说配音敌法师 现场专访海涛怒切假腿
2013/12/20 DOTA
[56:48]FNATIC vs EG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
Cython 三分钟入门教程
2009/09/17 Python
python学习手册中的python多态示例代码
2014/01/21 Python
Python读取图片属性信息的实现方法
2016/09/11 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
Python调用C语言程序方法解析
2020/07/07 Python
OpenCV利用python来实现图像的直方图均衡化
2020/10/21 Python
细说NumPy数组的四种乘法的使用
2020/12/18 Python
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢?
2016/08/18 面试题
大专生的学习自我评价
2013/12/04 职场文书
2013年学期结束动员演讲稿
2014/01/07 职场文书
年会活动策划方案
2014/01/23 职场文书
2014年班长个人工作总结
2014/11/14 职场文书
英文感谢信格式
2015/01/21 职场文书
职代会闭幕词
2015/01/28 职场文书
如何利用pygame实现打飞机小游戏
2021/05/30 Python
vue 实现上传组件
2021/05/31 Vue.js
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS