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函数中onmousedown和onclick的区别和联系探讨
May 19 Javascript
jQuery实现图片轮播特效代码分享
Sep 15 Javascript
javascript实现动态标签云
Oct 16 Javascript
js实现图片无缝滚动
Dec 23 Javascript
浅谈JavaScript中的分支结构
Jul 01 Javascript
深入理解js中的加载事件
Feb 08 Javascript
vue2 自定义动态组件所遇到的问题
Jun 08 Javascript
Swiper 4.x 使用方法(移动端网站的内容触摸滑动)
May 17 Javascript
node省市区三级数据性能测评实例分析
Nov 06 Javascript
Vue实现验证码功能
Dec 03 Javascript
JavaScript 实现下雪特效的示例代码
Sep 09 Javascript
Vue如何跨组件传递Slot的实现
Dec 14 Vue.js
浅谈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
受疫情影响 动画《Re从零开始的异世界生活》第二季延期至7月
2020/03/10 日漫
压力如何影响浓缩咖啡品质
2021/03/03 咖啡文化
xss防御之php利用httponly防xss攻击
2014/03/21 PHP
php过滤表单提交的html等危险代码
2014/11/03 PHP
php读取文件内容的方法汇总
2015/01/24 PHP
php接口技术实例详解
2016/12/07 PHP
golang实现php里的serialize()和unserialize()序列和反序列方法详解
2018/10/30 PHP
laravel中数据显示方法(默认值和下拉option默认选中)
2019/10/11 PHP
js动态切换图片的方法
2015/01/20 Javascript
JavaScript中的事件委托及好处
2016/07/12 Javascript
详解vue表单验证组件 v-verify-plugin
2017/04/19 Javascript
详解angularjs的数组传参方式的简单实现
2017/07/28 Javascript
bootstrap-table实现服务器分页的示例 (spring 后台)
2017/09/01 Javascript
Javascript中绑定click事件的四种方式介绍
2018/10/26 Javascript
nodejs各种姿势断点调试的方法
2020/06/18 NodeJs
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
[51:07]VGJ.S vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
基于python select.select模块通信的实例讲解
2017/09/21 Python
用tensorflow搭建CNN的方法
2018/03/05 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
python3.6使用tkinter实现弹跳小球游戏
2019/05/09 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
Python爬虫 bilibili视频弹幕提取过程详解
2019/07/31 Python
python实现图像拼接功能
2020/03/23 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
德国网上超市:myTime.de
2019/08/26 全球购物
Currentbody美国/加拿大:美容仪专家
2020/03/09 全球购物
投标邀请书范文
2014/01/31 职场文书
揭牌仪式主持词
2014/03/19 职场文书
创先争优活动承诺书
2014/08/30 职场文书
物联网工程专业推荐信
2014/09/08 职场文书
基于Python绘制子图及子图刻度的变换等的问题
2021/05/23 Python
pycharm代码删除恢复的方法
2021/06/26 Python
Java工作中实用的代码优化技巧分享
2022/04/21 Java/Android