如何修改给定JavaScript代码实现从10到0倒序打印?
实现从10到0倒序延迟打印的修改方案
以下是几种可行的修改方式,你可以根据需求选择:
方案1:调整循环参数与延迟计算
直接修改循环的起始值、终止条件和步长,同时调整延迟时间来控制打印顺序:
效果1:立刻打印10,之后每秒打印前一个数字(总耗时10秒)
for (let i = 10; i >= 0; i--) { // 数字越大,延迟越短,10无延迟立刻打印,0在10秒后打印 setTimeout(() => { console.log(i) }, (10 - i) * 1000) }
效果2:1秒后打印10,之后每秒打印前一个数字(总耗时11秒)
如果希望所有数字都有延迟,且间隔1秒:
for (let i = 10; i >= 0; i--) { setTimeout(() => { console.log(i) }, (10 - i + 1) * 1000) }
方案2:数组遍历实现
先创建包含10到0的数组,再通过遍历设置延迟:
// 生成10到0的数组 const nums = Array.from({ length: 11 }, (_, idx) => 10 - idx); nums.forEach((num, index) => { // 索引+1保证第一个元素(10)延迟1秒打印 setTimeout(() => { console.log(num) }, (index + 1) * 1000); });
这个方案的效果和方案1的效果2一致,1秒后开始打印10,之后每秒输出下一个数字。
方案3:递归实现
用递归的方式逐个打印数字,每次递归设置1秒延迟:
function printFrom10To0(current) { console.log(current); if (current > 0) { setTimeout(() => printFrom10To0(current - 1), 1000); } } // 启动递归 printFrom10To0(10);
这个方案会立刻打印10,之后每秒打印前一个数字,直到0,总耗时10秒。
内容的提问来源于stack exchange,提问作者UI SMART SOUMEN
相关产品推荐
相关产品推荐

