JavaScript程序设计知识点【ESJavaScript】(G4)

循环结构【while、do while、for】

重复执行一段代码

A.【while】循环

1、初始值
         while(2、条件){
             3、执行代码
             4、迭代
        }
复制代码

B.【do while】循环

1、初始值
        do{
                3、执行的代码
                4、迭代
        }while(2、条件)
复制代码

注意:先执行do中的代码 然后再判断条件

C.【for】循环

for循环while 本质一样的 将初始值 判断条件迭代放到一个专门的地方 结构更清晰

for(1、初始值;2、条件;3迭代){
             4、执行的代码
         }
复制代码

执行

                1-->2(判断是否成立 成立就执行4)
                4-->3
                3-->2
                2-->4 。。。。。 直到2不成立
复制代码

一般当循环次数 不固定时我们使用while 次数固定时使用for循环

for循环四个部分是可以省略

continue:结束本次循环 直接进行下次循环

    for(var i=0;i<10;i++){
           if(i==5)
           continue
           console.log(i);
        }
复制代码

break: 结束当前循环

    for(var i =0;i<10;i++){
        if(i==5)
        break;
        console.log(i);
    }
复制代码

使用break跳出双层循环

添加一个 标签 outer 然后 使用 break outer;

    outer: for(var i =0;i<10;i++){
               for(var j =0;j<i;j++){
               if(j==3){
                   break outer;
               }
          document.write("*&nbsp;&nbsp;");
       }
       document.write("<br>");
   }
复制代码

(在实际开发过程中,循环语句是经常使用的,必须掌握!!)

遍历经典案例

 var arr1 = [1, 3, 3, 3, 3, 3, 2, 2, 2, 1];
    // 求arr1 数组中 出现次数最多的元素;以及出现多少次?
    // 1: 数组去重
    function deletArr(arr) {
        // 初始化结果
        var res = [];  // 运算的结果,不重复的数组
        // 对 形参 arr 进行去重处理
        for (var i = 0; i < arr.length; i++) {
            if (res.indexOf(arr[i]) === -1) {
                res.push(arr[i])
            }
        }
        return res
    }
    var arr = deletArr(arr1);
    console.log(arr);


    // 2: 将去重后数组变为对象,key 元素 value 初始为 1
    function arrChangeObj(arr) {
        // 初始化运算结果
        var res = {};
        for (var i = 0; i < arr.length; i++) {
            res[arr[i]] = 1
        }
        return res; // 将运算结果输出到函数外部
    }

    var obj = arrChangeObj(arr);
    console.log(obj);

    // 3: 统计 对象中key 在 arr1 中出现的次数并赋值 value 

    for (var k in obj) {
        var count = 0; // 计数器
        for (var i = 0; i < arr1.length; i++) {
            k = Number(k);
            if (arr1[i] === k) {
                count++;
                obj[k] = count;
            }
        }
    }

    console.log(obj);



    // 4: 求 对象中所有value 的最大值。
    var maxValue = 0; // 假设最大值
    var maxX = 0;     // 记录key
    for (var x in obj) {
        if (obj[x] > maxValue) {
            maxValue = obj[x]; 
            maxX = x
        }
    }
    // 根据value值找到对应的key 
    console.log(maxValue, maxX);
复制代码
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享