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 replace(rgExp,fn)正则替换的用法
Mar 04 Javascript
根据出生日期自动取得星座的js代码
Jul 20 Javascript
上传的js验证(图片/文件的扩展名)
Apr 25 Javascript
js简单实现点击左右运动的方法
Apr 10 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
JS兼容所有浏览器的DOMContentLoaded事件
Jan 12 Javascript
解决node修改后需频繁手动重启的问题
May 13 Javascript
超出JavaScript安全整数限制的数字计算BigInt详解
Jun 24 Javascript
原生js检测页面加载完毕的实例
Sep 11 Javascript
Vue入门之数量加减运算操作示例
Dec 11 Javascript
详解Vue.js自定义tipOnce指令用法实例
Dec 19 Javascript
解决vue中el-tab-pane切换的问题
Jul 19 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的远程图片抓取函数分享
2013/09/25 PHP
PHP无限分类(树形类)
2013/09/28 PHP
php生成百度sitemap站点地图类函数实例
2014/10/17 PHP
php使用APC实现实时上传进度条功能
2015/10/26 PHP
Laravel下生成验证码的类
2017/11/15 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
Add a Picture to a Microsoft Word Document
2007/06/15 Javascript
javascript JSON操作入门实例
2010/04/16 Javascript
JavaScript 事件系统
2010/07/22 Javascript
js中各种类型的变量在if条件中是true还是false
2014/07/16 Javascript
Node.js中安全调用系统命令的方法(避免注入安全漏洞)
2014/12/05 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
JavaScript 浏览器对象模型BOM使用介绍
2015/04/13 Javascript
JavaScript使用DeviceOne开发实战(一) 配置和起步
2015/12/01 Javascript
bootstrap weebox 支持ajax的模态弹出框
2017/02/23 Javascript
webpack进阶——缓存与独立打包的用法
2017/08/02 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
vue2.0使用v-for循环制作多级嵌套菜单栏
2018/06/25 Javascript
Bootstrap 模态框自定义点击和关闭事件详解
2018/08/10 Javascript
React-redux实现小案例(todolist)的过程
2019/09/29 Javascript
详解ECMAScript2019/ES10新属性
2019/12/06 Javascript
[01:01:41]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Magma BO3 第二场 1月31日
2021/03/11 DOTA
Python正则表达式匹配ip地址实例
2014/10/09 Python
python利用正则表达式提取字符串
2016/12/08 Python
python发送邮件脚本
2018/05/22 Python
Python字符串内置函数功能与用法总结
2019/04/16 Python
Tensorflow实现多GPU并行方式
2020/02/03 Python
东芝官网商城:还原日式美学,打造美好生活
2018/12/27 全球购物
adidas菲律宾官网:adidas PH
2020/02/07 全球购物
剪彩仪式主持词
2014/03/19 职场文书
感恩老师的演讲稿
2014/05/06 职场文书
让子弹飞观后感
2015/06/11 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
Windows 11上手初体验:任务栏和开始菜单等迎来大改
2021/11/21 数码科技