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 URL参数读取改进版
Jan 16 Javascript
js Flash插入函数免激活代码
Mar 31 Javascript
JavaScript 定义function的三种方式小结
Oct 16 Javascript
javascript 读取XML数据,在页面中展现、编辑、保存的实现
Oct 27 Javascript
JavaScript中Cookie操作实例
Jan 09 Javascript
js实现仿Discuz文本框弹出层效果
Aug 13 Javascript
Bootstrap打造一个左侧折叠菜单的系统模板(二)
May 17 Javascript
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
Nov 24 Javascript
JavaScript中Object值合并方法详解
Dec 22 Javascript
Node.js使用Angular简单示例
May 11 Javascript
js中apply和call的理解与使用方法
Nov 27 Javascript
js实现简易ATM功能
Oct 27 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 图片上传类代码
2009/07/17 PHP
ThinkPHP登录功能的实现方法
2014/08/20 PHP
使用PHPMailer实现邮件发送代码分享
2014/10/23 PHP
PHP操作Postgresql封装类与应用完整实例
2018/04/24 PHP
在IE中调用javascript打开Excel的代码(downmoon原作)
2007/04/02 Javascript
封装了一个支持匿名函数的Javascript事件监听器
2014/06/05 Javascript
jQuery中$.extend()用法实例
2015/06/24 Javascript
深入理解jQuery之防止冒泡事件
2016/05/24 Javascript
AngularJS 指令的交互详解及实例代码
2016/09/14 Javascript
基于Vuejs框架实现翻页组件
2020/06/29 Javascript
Bootstrap的modal拖动效果
2016/12/25 Javascript
微信小程序对接七牛云存储的方法
2017/07/30 Javascript
vue使用mint-ui实现下拉刷新和无限滚动的示例代码
2017/11/06 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
JS中原始值和引用值的储存方式示例详解
2018/03/23 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
JS实现滑动拼图验证功能完整示例
2020/03/29 Javascript
[02:52]DOTA2新手基础教程 米波
2014/01/21 DOTA
Pycharm 创建 Django admin 用户名和密码的实例
2018/05/30 Python
PyCharm设置护眼背景色的方法
2018/10/29 Python
python 定时器,轮询定时器的实例
2019/02/20 Python
python使用Plotly绘图工具绘制散点图、线形图
2019/04/02 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
OpenCV搞定腾讯滑块验证码的实现代码
2019/05/18 Python
python如何制作英文字典
2019/06/25 Python
python 中pyqt5 树节点点击实现多窗口切换问题
2019/07/04 Python
使用coverage统计python web项目代码覆盖率的方法详解
2019/08/05 Python
python文件读取失败怎么处理
2020/06/23 Python
Python识别处理照片中的条形码
2020/11/16 Python
美国轮胎网站:Priority Tire
2018/11/28 全球购物
澳大利亚最受欢迎的超级商场每日优惠:Catch
2020/11/17 全球购物
行政主管岗位职责
2013/11/18 职场文书
公司薪酬管理制度
2014/01/31 职场文书
考研英语复习计划
2015/01/19 职场文书
详解MySQL的半同步
2021/04/22 MySQL
彻底解决MySQL使用中文乱码的方法
2022/01/22 MySQL