美文网首页
【ts】循环相关

【ts】循环相关

作者: 计西 | 来源:发表于2019-05-29 19:49 被阅读0次

    【注意】:forEach内使用break和return无效!

    forEach方法中对数组进行splice()的处理

    forEach是一个迭代器,在调用了这个方法之后就无法中断循环。
    splice()是移除数组元素的一个方法。

    【输入】定义测试数组

    var a = [1,2,3,4,5];
    

    测试方法

    var func = function(arr){
            arr.forEach((iter, index)=>{
                console.log("iter:"+iter+"; index:"+index);
                arr.splice(0, 1);
            });
        }
    

    【输出】调用方法查看结果

     this.func(a);
    

    // 输出
    iter:1; index:0
    iter:3; index:1
    iter:5; index:2

    解析

    在forEach()的时候,index值依次加1,循环了3次就结束了,说明循环中的splice()是对数组a起了作用的
    (此处专门说明是因为貌似在Java的forEach中对数组长度进行修改会报错)。

    第一次循环,index = 0,数组为【1,2,3,4,5】,iter = a[index] = 1;a.splice(0, 1),此时数组为【2,3,4,5】
    第二次循环,index = 1,数组为【2,3,4,5】, iter = a[index] = 3; a.splice(0, 1), 此时数组为【3,4,5】
    第三次循环,index = 2,数组为【2,4,5】, iter = a[index] = 5; a.splice(0,1), 此时数组为【3,4】
    不满足下一次循环条件,结束循环。

    相关文章

      网友评论

          本文标题:【ts】循环相关

          本文链接:https://www.haomeiwen.com/subject/vxhutctx.html