gpt4 book ai didi

javascript - for 循环内的递归函数未按预期工作

转载 作者:太空宇宙 更新时间:2023-11-04 00:40:27 25 4
gpt4 key购买 nike

我试图使用递归函数打印第一个数组元素,但输出不符合预期。

var modelArray = [1,2,3];
var refurbArray = [a,b];
for (var z = 0; z < modelArray.length; z++) {
for (var y = 0; y < refurbArray.length; y++) {
var check = modelArray[z];
var recursive(refurbArray[y], function() {
consol.log(check);
});
}
}

预期输出:

1
1
2
2
3
3

获得的输出:

3
3
3
3
3
3

最佳答案

您遇到的问题是recursive推迟了对回调函数的调用(可能是由于recursive内部的一些异步功能),并且当回调函数最终执行时,check发生了变化。

您需要在闭包中绑定(bind)check,对此有几个选项和编码风格如何执行,但示例如下

for (var z = 0; z < modelArray.length; z++) {
for (var y = 0; y < refurbArray.length; y++) {
(function() {
var check = modelArray[z];
recursive(refurbArray[y], function() {
consol.log(check);
});
})();
}
}

关于javascript - for 循环内的递归函数未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37052020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com