广告
返回顶部
首页 > 资讯 > 精选 >JS中六种For循环怎么使用
  • 837
分享到

JS中六种For循环怎么使用

2023-06-30 00:06:08 837人浏览 八月长安
摘要

这篇文章主要介绍“js中六种For循环怎么使用”,在日常操作中,相信很多人在JS中六种For循环怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS中六种For循环怎么使用”的疑惑有所帮助!接下来,请跟

这篇文章主要介绍“js中六种For循环怎么使用”,在日常操作中,相信很多人在JS中六种For循环怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS中六种For循环怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

    for 循环在平时开发中使用频率最高的,前后端数据交互时,常见的数据类型就是数组和对象,处理对象和数组时经常使用到 for 遍历,因此下班前花费几分钟彻底搞懂这 5 种 for 循环。它们分别为:

    • for

    • for ... in

    • for ... of

    • for await .. of

    • forEach

    • map

    一、各个 for 介绍

    1、for

    for 循环是出现最早,也是应用最普遍的一个遍历,能够满足绝大多数的遍历。可以遍历 数组、对象、字符串,示例:

    // 遍历数组var arr = [1, 2, 3]for (var i = 0; i < arr.length; i++){  console.log(arr[i]);}//遍历对象var obj = {  job: 'WEB worker',  name:'前端代码女神'}for (var i = 0,keys = Object.keys(obj); i< keys.length; i++){  console.log(obj[keys[i]])}//遍历字符串let str = 'abc'for (var i = 0; i < str.length; i++){  console.log(str[i])}

    2、for ... in

    for ... in 是在 ES5 中新增的,以任意顺序迭代一个对象的除Symbol以外的可枚举属性,包括继承的可枚举属性。

    // 遍历数组var arr = [1, 2, 3]for (var i in arr ){  console.log(i);//0 1 2  console.log(arr[i]);//1 2 3}//遍历对象var obj = {  job: 'web worker',  name:'前端代码女神'}for (var key in obj){  console.log(key)// job name  console.log(obj[key])// web worker  前端代码女神}//遍历字符串let str = 'abc'for (var i in str){  console.log(i) // 0 1 2  console.log(str[i]) // a b c}

    3、for ... of

    for ... of 语句在可迭代对象(包括 Array、Map、Set、String、TypedArray、arguments 对象等等)上创建一个迭代循环,调用自定义迭代钩子,并为每个不同属性的值执行语句。

    // 迭代 Arrayvar arr = [1, 2, 3]for (var val of arr ){  console.log(val);// 1 2 3}//迭代 Stringlet str = 'abc'for (var val of str){  console.log(val) // a b c}// 迭代 TypedArray - 一个类型化数组,描述了一个底层的二进制数据缓冲区!let iterable = new Uint8Array([0x00, 0xff]);for (let value of iterable) {  console.log(value);//0 255}// 迭代 Map - 对象保存键值对,能够记住键的原始插入顺序let map = new Map([['a',1],['b',2]])for (let key of map) {  console.log('key',key)//['a',1] ['b',2] }for (let [key,value] of map) {  console.log(key) // a b  console.log(value) // 1 2}// 迭代 Setlet set = new Set([1,2,3,2,1])for (let val of set) {  console.log(val)// 1 2 3}

    4、for await...of

    创建一个循环,该循环遍历异步可迭代对象以及同步可迭代对象,包括内置的 String、Array,类数组对象(arguments 或 nodeList),TypedArray, Map, Set 和用户定义的异步/同步迭代器。它使用对象的每个不同属性的值调用要执行的语句来调用自定义迭代钩子。

    类似于 await 运算符一样,该语句只能在一个async function 内部使用。

    async function* asyncGenerator() {  var i = 0;  while (i < 3) {    yield i++;  }}(async function () {  for await (num of asyncGenerator()) {    console.log(num);// 0 1 2  }})();

    5、forEach

    forEach 是ES5版本发布的,按升序为数组中含有效值的每一项执行一次回调函数,那些已删除或者未初始化的项将被跳过(例如在稀疏数组上),一般认为是 普通for循环 的加强版。

    // 遍历数组var arr = [1, 2, 3]arr.forEach((item, index) => {  console.log(index);//0 1 2  console.log(item);// 1 2 3})//遍历对象var obj = {  job: 'web worker',  name:'前端代码女神'}var keys = Object.keys(obj)keys.forEach((key) => {  console.log(key)// job name  console.log(obj[key])// web worker  前端代码女神})

    6、map

    遍历时可以返回一个新数组,新数组的结果是原数组中每个元素都调用一次提供的函数后返回的值。

    // 遍历数组var arr = [1, 2, 3]let newArr = arr.map((item) => item * 2)console.log(newArr);//[2,4,6]

    二、多个 for 之间区别

    1、使用场景差异

    for循环是最早最原始的循环遍历语句,for 内部定义一个变量,按照条件进行循环遍历,通常是数组的长度,当超过长度时就停止循环,一般遍历的都是数组或类数组。遍历对象时,由于对象没有长度,所以使用 Object.keys() 获取对象的所有属性,以数组形式返回。

    for / in主要是用来遍历对象上的可枚举属性,包括原型对象上的属性,按任意顺序进行遍历,遍历对象时获取到的是属性的键值,遍历的是数组,数组的下标当做键值。

    for / of用于遍历可迭代对象的数据,包括 Array、Map、Set、String、TypedArray、arguments 对象等等。

    for await...of用于遍历异步可迭代对象,该语句只能在一个async function 内部使用。

    forEach 是 for 的加升级版,使用更简单,携带参数更多,但本质还是数组的循环,每个元素都执行一次回调,不会改变原数组。

    map是给原数组每个元素都执行一次回调,返回一个新数组,不会改变原数组。

    2、功能差异

    forEach、map 不支持跳出循环,其他不支持。

    for await ... of 能够支持异步操作,其他的不支持。

    对于纯对象的遍历, for ... in 枚举更方便。

    对于数组遍历,如果不需要索引,可以直接使用 for...of 获取值,还可支持 break 或 return ;如果还需要索引,使用 forEach 更适合,但不支持 return。

    如果是一个数组映射成另一个数组,使用 map 最合适。

    3、性能差异

    测试环境、测试数据条件一致的情况下,性能排序为:

    for > for of > forEach > map > for in。

    for 因为没有额外的函数调用和上下文,所以性能是最快的。

    for ... of 具有 iterator 接口的数据结构,可以使用它来迭代成员,直接读取键值。

    forEach 是 for 的语法糖,还有许多的参数和上下文,因此会慢一些。

    map 因为它返回的是一个等长的全新数组,数组创建和赋值产生的性能开销较大。

    for...in 性能最差,因为需要列举对象的所有属性,有转化过程,开销比较大。

    三、for 的使用

    项目开发中,我们应该根据实际需求,去选择一个合适的 for 遍历。以下是一些使用建议:

    • 如果需要把数据映射成另外一个数组,如变成对应布尔值,推荐使用 map ,不会修改原数组,使用语法简单。

    • 数组遍历时,可以使用 for 、forEach 或 for...of。

    • 遍历的是纯对象时,推荐使用 for ... in 。

    • 如果是需要对迭代器遍历,推荐使用 for ... of。

    • 如果是在数组中筛选符合条件的数组,使用 fillter 。

    到此,关于“JS中六种For循环怎么使用”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

    --结束END--

    本文标题: JS中六种For循环怎么使用

    本文链接: https://www.lsjlt.com/news/326861.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • JS中六种For循环怎么使用
      这篇文章主要介绍“JS中六种For循环怎么使用”,在日常操作中,相信很多人在JS中六种For循环怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JS中六种For循环怎么使用”的疑惑有所帮助!接下来,请跟...
      99+
      2023-06-30
    • 一文带你搞懂JS中六种For循环的使用
      目录一、各个 for 介绍1、for2、for ... in3、for ... of4、for await...of5、forEach6、map二、多个 for 之间区别1、使用场景...
      99+
      2022-11-13
    • JS关于for循环中使用setTimeout的四种解决方案
      目录概述解决方案1:闭包解决方案2:拆分结构解决方案3:let解决方案4:setTimeout第三个参数概述 我们先来简单了解一下setTimeout延时器的运行机制。setTime...
      99+
      2022-11-12
    • python-for循环的多种使用
      🌳🌳🌳前言:本文简单总结了一下python中for循环的使用 目录 🌸for循环迭代字符串 🌸for打印数字 🌟注意for循环不能迭代数值类型...
      99+
      2023-09-03
      python
    • js中for循环的实例用法
      这篇文章主要介绍“js中for循环的实例用法”,在日常操作中,相信很多人在js中for循环的实例用法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”js中for循环的实例用法”...
      99+
      2022-10-19
    • Shell两种for循环怎么实现
      小编给大家分享一下Shell两种for循环怎么实现,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!前言:  生产环境中的应用场景:根目录下建立数量不等的目录,挂载不同的硬盘,按sdb-sdn的顺序对应/data2-/data...
      99+
      2023-06-09
    • JS 中的for...of 循环是怎样的
      这篇文章给大家介绍JS 中的for...of 循环是怎样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。JavaScript 中的for...of语句就是...
      99+
      2022-10-19
    • JS中for循环的四种写法示例(入门级)
      目录1. 传统for循环2. for of 循环3. for in 循环4. forEach方法附完整实例:总结1. 传统for循环 for (init; cond; inc) { ...
      99+
      2022-11-13
    • Scala for循环怎么使用
      本篇内容介绍了“Scala for循环怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基本语法:变量,变量的定义:不可变:val a ...
      99+
      2023-06-02
    • C语言中for循环与while循环怎么使用
      本文小编为大家详细介绍“C语言中for循环与while循环怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“C语言中for循环与while循环怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、单层f...
      99+
      2023-07-02
    • python中for循环的多种使用实例
      目录前言for循环迭代字符串for打印数字注意for循环不能迭代数值类型for循环打印数字的话要借用range函数for循环可用来初始化列表简单的往列表里添加数据列表推导式总结前言 ...
      99+
      2022-11-11
    • JS的for循环语句如何使用
      本文小编为大家详细介绍“JS的for循环语句如何使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“JS的for循环语句如何使用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一:...
      99+
      2022-10-19
    • Python3中的for循环怎么使用
      本篇内容介绍了“Python3中的for循环怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一·ra...
      99+
      2022-10-19
    • 怎么在shell中使用for循环
      这篇文章将为大家详细讲解有关怎么在shell中使用for循环,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。代码如下:#!/bin/shi=1SUM=`sed -n ...
      99+
      2023-06-09
    • JavaScript中for循环怎么用
      这篇文章给大家分享的是有关JavaScript中for循环怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。前言对于for循环,相信大家再常用不过了。但是这回说下for循环是因...
      99+
      2022-10-19
    • php中for循环怎么用
      这篇文章主要为大家展示了“php中for循环怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“php中for循环怎么用”这篇文章吧。for循环//正常写法 f...
      99+
      2022-10-19
    • JavaScript中三种for循环语句的使用总结(for、for...in、for...of)
      前言 每个接触JS的开发人员都不可避免的与for循环打交道,毕竟这是遍历必不可少的工具之一。JavaScript 中的 for 循环语句相信大家都已经快用厌了,现在有好多文章都在讲怎...
      99+
      2022-11-12
    • 怎么使用Java的For循环
      这篇文章主要介绍“怎么使用Java的For循环”,在日常操作中,相信很多人在怎么使用Java的For循环问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Java的For...
      99+
      2022-10-19
    • while和for循环怎么使用
      本篇内容介绍了“while和for循环怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、概述Python中的循环语句有 for 和 ...
      99+
      2023-06-04
    • js如何使用for循环实现求和
      这篇文章主要介绍了js如何使用for循环实现求和,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用for循环,累加求和function sum(arr) ...
      99+
      2023-06-17
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作