js 分割二维数组,有点不太理解这段代码??

split_array=(arr,len)=>{
    let arr_length = arr.length;
    let newArr = [];
    for(let i=0;i<arr_length;i+=len){
        console.log(i)
        newArr.push(arr.slice(i,i+len));
        console.log(i)
    }
    return newArr;
}
split_array(arr,3)

这段代码是可以正确执行的。

可是有一点不太理解

循环条件里已经i+=len
然后
怎么在第一次循环里 i 还是 0 为什么不是 3 呢
console.log(i)分别是 0 3 6 9 12 15 18

阅读 2.4k
1 个回答

请理解 for 语句的执行原理。
https://developer.mozilla.org...

for ([initialization]; [condition]; [final-expression])
    statement
  1. 执行 initialization, 且只执行一次;
  2. 判断 condition,一个条件表达式被用于确定每一次循环是否能被执行。如果该表达式的结果为true, statement 将被执行。 这个表达式是可选的。如果被忽略,那么就被认为永远为真。如果计算结果为假,那么执行流程将被跳到for语句结构后面的第一条语句;
  3. 执行 final-expression 每次 循环的最后 都要执行的表达式。

那么,在第一次循环里,i 就是 0 呀,为什么是 3 ?

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题