js实现每个一秒输出1,2,3
时间: 2023-05-25 22:06:28 浏览: 105
```javascript
let count = 1;
setInterval(() => {
console.log(count++);
if (count > 3) {
clearInterval();
}
}, 1000);
```
//注意:在计时器触发的回调函数中需要增加判断,超过3后清除定时器,否则会一直输出1,2,3。
相关问题
js实现每个一秒输出1,2,3,使用reduce
这个题目可以用reduce来完成,每次往数组里push下一个数字,然后返回新的数组作为下一次操作的初始值。
具体代码实现如下:
```javascript
const arr = [1,2,3];
arr.reduce((prev, curr) => {
setTimeout(() => {
console.log(curr);
}, prev * 1000);
return prev + 1;
}, 1);
```
解释一下,这里使用了reduce方法,初始值为1,然后每次往数组里push一个数字,要做的事情是设置一个定时器,在prev秒后输出这个数字。
在返回上一个操作的结果时,把当前操作的数字加1,下一次操作使用。
最终效果就是每隔1秒输出一个数字。
js实现每个一秒输出1,2,3,使用reduce和promise
这种情况下,我建议使用 setInterval 和 Promise 来实现,代码如下:
```javascript
function count() {
return new Promise((resolve, reject) => {
let num = 1;
const interval = setInterval(() => {
if (num > 3) {
clearInterval(interval);
resolve();
} else {
console.log(num);
num++;
}
}, 1000);
});
}
count();
```
上面的代码中,我们创建了一个 Promise 对象并返回它,该 Promise 对象的作用是等待定时器完成。在定时器中,我们每隔一秒检查 num 的值,如果 num 大于 3,就清除定时器并解决 Promise。否则,我们将 num 的值打印出来并自增。最后,我们调用 count 函数以开始计数。
阅读全文