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