javascript ES6有如果要遍历一个数组,我们有多个方式可以进行。
下面我们来分析一下各自的利弊。

for循环

const langs = ['java', 'php', 'c++', 'python']for (let i = 0; i < langs.length; i++) {console.log(langs[i])}

for循环的问题在于遍历的时候获得的是指针,要获取元素需要 langs[i]的方式取到。

forEach

    langs.forEach(function (lang, index, arr) {console.log(lang)console.log(index)console.log(arr)}, this);lang.forEach((lang, index) => {console.log(lang)console.log(index)})

forEach循环我们可以直接取到元素,同时也可以取到index值。
但是forEach也有一些局限,比如我们不能在循环内break或者continue.

for...in 循环

for-in is for inspecting object properties. It works on any object, and it always loops over the names of the object's enumerable properties.

const langs = ['java', 'php', 'c++', 'python']
langs.description = "This is a language set"
langs.func = ()=>(2)for (var key in langs) {console.log(langs[key])
}

for...in 迭代获取到的也是key而不是数值。另外for...in迭代的是对象所有的属性或函数都会被迭代。
选用for...in可以根据自己的实际需求。

for...of

for-of is for looping over data. It only works on iterable objects; that is, objects with a suitable [iterator] method.

const langs = ['java', 'php', 'c++', 'python']for (let lang of langs) {console.log(lang)}

for...of支持break continue

如何在for...of循环中获取到index值呢?

    for (let [index, lang] of langs.entries()) {console.log(`${index} - ${lang}`)}

for...of还有其他的用处

  • for...of用于arguments
  • for...of用于字符串遍历
  • for...of用于DOM节点的遍历

文章为学习笔记,内容参考codecasts的视频课程https://www.codecasts.com/ser...

[学习笔记] ES6的数组遍历方式 for, forEach,for...in, for...of相关推荐

  1. JS几种数组遍历方式以及性能分析对比

    前言 这一篇与上一篇 JS几种变量交换方式以及性能分析对比 属于同一个系列,本文继续分析JS中几种常用的数组遍历方式以及各自的性能对比 起由 在上一次分析了JS几种常用变量交换方式以及各自性能后,觉得 ...

  2. js中遍历数组加到新数组_JS几种数组遍历方式总结

    JS数组遍历的几种方式 S数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一 ...

  3. JS几种数组遍历方式总结

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...

  4. TS学习笔记04 JS创建对象的方式

    TS学习笔记04 JS创建对象的方式 ​ 首先我们回顾下JS中创建对象的方式 ​ 比如说我按照下面的创建了两个对象分别为stu1和stu2,比如说我现在想给这两个对象都添加一个新的方法,但是这两个对象 ...

  5. 学习笔记_使用二进制的方式修改图片

    学习笔记_使用二进制的方式修改图片 1.学习目标 2.学习工具 3.开始操作 3.1 了解图片是怎样用二进制表示的 3.2 开始操作 4.参考文档 1.学习目标 掌握使用二进制的方式修改图片 了解BM ...

  6. Flutter学习笔记之-圆形头像实现方式

    Flutter学习笔记之-圆形头像实现方式 开发中如何实现类似圆形图片 Container+BoxDecoration来实现圆角图像 class DemoWidget extends Stateles ...

  7. 数组遍历 map()、forEach() 及 字符串切割 split() / 字符串截取 slice()、substring()、substr()...

    JS数组遍历的几种方式 JS数组遍历,基本就是for,forin,foreach,forof,map等等一些方法,以下介绍几种本文分析用到的数组遍历方式以及进行性能分析对比 第一种:普通for循环 代 ...

  8. Web学习笔记——ES6(下)

    ES6学习笔记(下) 六.对象的扩展 1.对象字面量 属性的简洁表示法 方法的简洁表示法 属性名表达式 2.对象的扩展运算符 3.对象的新增方法 Object.is Object.assign 七.S ...

  9. 【JavaSE阶段学习笔记一】数组以及数组之前的知识点

    文章目录 JavaEE知识总结 前言 一.计算机的基础知识(了解即可) 二.常见的DOS指令 1.进入DOS命令 2.常见的DOS命令(熟练使用) 三.Java语言的历史 四.Java语言的平台版本 ...

最新文章

  1. 数据备份_「Cassandra实战」Cassandra数据备份
  2. mac最好用的markdown_Markdown 语法简明教程 amp; Markdown 编辑器推荐
  3. html鼠标长按事件,JavaScript-web如何获取长按鼠标左键事件
  4. c运行库、c标准库、windows API都是什么玩意
  5. odoo10 ORM操作
  6. 挑战程序设计竞赛_实力爆棚!2019年,华中科技大学拿下亚洲区竞赛金牌4枚!...
  7. 在centos上安装html,Centos-7安装pdf2htmlEX
  8. 手机不支持温度传感器为什么鲁大师可以检测手机电池的温度?
  9. python白盒测试_白盒测试 - zp_Alex - 博客园
  10. solr5.3 实现同义词 扩展词典 停止词典 功能介绍
  11. android倒影效果,Android实现图片的倒影效果案例分析
  12. 七日之都账号服务器,永远的7日之都开服时间一览表 7日之都最新服务器开服时间一览...
  13. TFTP协议解析及C/C++代码实现
  14. 在Windows 7中使用搜索连接器从您的桌面搜索网站
  15. python语言变量名规则_python语言变量命名规则
  16. 构造方法的作用,为什么要写构造方法?
  17. TensorFlow Eager 教程
  18. python 元组拆包_Python元组拆包和具名元组解析实例详解
  19. 2021届秋招嵌入式软件开发(联发科、海康威视、浙江大华、高德红外、汇顶科技、瑞芯电子、深圳有为)
  20. 霍启刚晒全家出游照,网友们纷纷点赞,郭晶晶教育孩子有一套

热门文章

  1. JavaScript语言基础10
  2. (0025)iOS 开发之Xcode常用快捷键
  3. php excel parser pro v4.2,php中使用ExcelFileParser处理excel获得数据(可作批量导入到数据库使用)...
  4. Django的模板层
  5. python CST中国标准时间格式转换
  6. join,和循环删除,fromkeys,集合,拷贝
  7. 计算机系统—CPU结构和内部工作
  8. Redhat 6.3 yum 本地源配置
  9. ibatis 配置参数解析
  10. 发布新模板-画情画心