zoukankan      html  css  js  c++  java
  • JS循环中断与异步for...in forEach map

    一 JS循环中断与异步:https://juejin.cn/post/6844903842425864200

    • forEach和map,针对await不生效;使用break或continue会报错;使用return 无效;
    • for循环、for...in,for...of,支持await,for和for...of中可以使用break和continue;for...in会忽略continue和break
    Array.prototype.every();Array.prototype.some();Array.prototype.find();Array.prototype.findIndex()可以终止循环:
     1   // every在碰到return false的时候,中止循环。
     2   let arr = [1, 2, 3, 4, 5]
     3   arr.every(item => {
     4     console.log(item); //输出:1,2
     5     if (item === 2) {
     6       return false
     7     } else {
     8       return true
     9     }
    10   })
    11   // some在碰到return ture的时候,中止循环。
    12   arr.some(item => {
    13     console.log(item); //输出:1,2
    14     if (item === 2) {
    15       return true
    16     } else {
    17       return false
    18     }
    19   })
    View Code
    二 for...of与其他遍历语法比较:(https://juejin.im/post/5aea83c86fb9a07aae15013b
    1. for循环:
    • 循环效率高;
    • 写法比较麻烦。
    2. forEach循环:
    • 适用于循环次数未知,或者计算循环次数比较麻烦情况下;或者只是进行集合或数组遍历;
    • 无法中途跳出forEach循环,break命令或return命令都不能生效。
    • 不能对数组或集合进行修改(添加删除操作),如果想要修改就要用for循环。
    3.Object.keys():
    • 返回对象自身可枚举属性组成的数组
    • 不会遍历对象原型链上的属性以及 Symbol 属性
    • 对数组的遍历顺序和 for in 一致
    4. for...in循环:主要为遍历对象而设计,不适用于遍历数组。
    遍历数组缺点:
    • 数组的键名是数字;
    • 不仅遍历数字键名,还会遍历手动添加的其他键,甚至包括原型链上的键;
    • 某些情况下,for...in循环会以任意顺序遍历键名。
    5. for ...of:
    • es6 中添加的循环遍历语法;
    • 支持遍历数组,类数组对象(DOM NodeList),字符串,Map 对象,Set 对象,Generator 对象;
    • 不支持遍历普通对象;
    • 遍历后输出的结果为数组元素的值;
    • 可搭配实例方法 entries(),同时输出数组的内容和索引;
     三 for循环嵌套:

    for循环执行过程:

     for(①初始化表达式;②条件表达式;③更新表达式){
            循环体语句;
        }

    1、执行初始化表达式,初始化变量;(初始化表达式只执行一次)

    2、执行条件表达式(Boolean值),判断是否执行循环

    • 如果表达式值为true则执行循环体,
    • 如果表达式值为false则退出循环;

     4、执行更新表达式,更新表达式执行完之后,则继续执行第2步

    如此循环往复,直到条件表达式的值为false。

    推荐阅读:

     for循环:https://www.cnblogs.com/nyw1983/p/11727339.html

  • 相关阅读:
    AndroidStudio中AlertDialog的四种用法(转载)
    ZPL指令封装
    Android程序闪退时写日志并上传到服务器
    sql server 导出表结构
    Kestrel服务器ASP.NetCore 3.1程序启用SSL
    Asp.Net Core 下 Newtonsoft.Json 转换字符串 null 替换成string.Empty(转)
    ApiResult-WebAPI开发统一返回值对象的演化(.net core版)
    EF Core 拓展SqlQuery方法(转载)
    钉钉小程序post提交json,报400、415
    体验.net core 3.1 socket
  • 原文地址:https://www.cnblogs.com/terrymin/p/14546037.html
Copyright © 2011-2022 走看看