【ts】循环相关

2019-05-29  本文已影响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】
不满足下一次循环条件,结束循环。

上一篇下一篇

猜你喜欢

热点阅读