提问人:galhayne 提问时间:11/3/2022 最后编辑:galhayne 更新时间:11/3/2022 访问量:28
JavaScript 如何修复陷阱计数器 [duplicate]
javascript how to fix pitfalls counter [duplicate]
问:
我正在尝试运行一个for循环并在不使用let的情况下打印当前索引
这是我的代码:
function init() {
for (var index = 0; index < 5; ++index) {
setTimeout(() => {
console.log(index);
}, index);
}
}
我预计: 0 1 2 3 4 但我得到 5 5 5 5 5
一旦 Var 替换在 Let 中,问题就会得到解决
我想留在 Var
如何解决问题? 谢谢
答:
0赞
Ampit
11/3/2022
#1
function init() {
for (var index = 0; index < 5; ++index) {
const i = index;
setTimeout(() => {
console.log(i);
}, i);
}
}
这应该有效。
评论
0赞
galhayne
11/3/2022
是否可以保持超时并获取索引?
0赞
Ampit
11/3/2022
不确定,如果您希望某些东西在一定延迟后连续运行,您也可以使用 setInterval。也许这对你有用。
评论