for循环的第三个部分(迭代),我想自定义

0 阅读2分钟

在 JavaScript 中,for 循环的基本语法是 for (初始化; 条件; 迭代),其中第三个部分(迭代)是在每次循环体执行完毕后执行的表达式,它通常用于更新循环变量。是的,你可以根据需求自定义这个部分,只要它是一个有效的 JavaScript 表达式就行。坐稳扶好,下面通过不同的示例来展示如何自定义 for 循环的第三个条件。

常规使用场景及自定义示例

1. 自定义循环变量的更新步长

通常情况下,我们会使用 i++ 或 i-- 来让循环变量每次增加或减少 1。但你可以自定义每次增加或减少的数值。

// 让循环变量每次增加 2
for (let i = 0; i < 10; i += 2) {
    console.log(i);
}

// 让循环变量每次减少 3
for (let j = 15; j > 0; j -= 3) {
    console.log(j);
}

代码解释

  • 在第一个 for 循环中,i += 2 作为第三个条件,意味着每次循环结束后,i 的值会增加 2,这样循环会依次输出 0、2、4、6、8。
  • 在第二个 for 循环中,j -= 3 使得每次循环结束后,j 的值会减少 3,循环会依次输出 15、12、9、6、3。

2. 结合其他操作更新循环变量

除了简单的数值增减,你还可以在第三个条件中执行更复杂的操作,比如调用函数、修改数组元素等。

// 数组元素操作
let arr = [1, 2, 3, 4, 5];
for (let k = 0; k < arr.length; arr[k++] *= 2) {
    console.log(arr[k - 1]);
}

// 调用函数更新循环变量
function customIncrement(num) {
    return num + 3;
}
for (let m = 0; m < 10; m = customIncrement(m)) {
    console.log(m);
}

代码解释

  • 在第一个 for 循环里,arr[k++] *= 2 这个表达式做了两件事:先将当前索引 k 对应的数组元素乘以 2,然后 k 自增 1。这样循环会依次输出数组元素乘以 2 后的结果。
  • 在第二个 for 循环中,m = customIncrement(m) 调用了自定义函数 customIncrement 来更新循环变量 m,每次增加 3,循环会依次输出 0、3、6、9。

3. 嵌套操作

你也可以在第三个条件中进行嵌套操作,比如根据某个条件决定是否更新循环变量。

let counter = 0;
for (let n = 0; n < 5; ) {
    if (counter % 2 === 0) {
        n++;
    }
    counter++;
    console.log(n);
}

代码解释
在这个 for 循环中,第三个条件为空,循环变量 n 的更新操作放在了循环体内部。只有当 counter 为偶数时,n 才会自增 1,从而实现了根据条件更新循环变量的效果。

总之,for 循环的第三个条件给予了你很大的灵活性,你可以根据具体需求编写合适的表达式来控制循环的迭代过程。学会之后,记得悄悄在代码里用上,给你的同事一个大惊喜!