gpt4 book ai didi

循环变量和递归的javascript

转载 作者:可可西里 更新时间:2023-11-01 02:16:11 24 4
gpt4 key购买 nike

我有一个问题,我在 for 循环中进行递归:

function func(node) {
for(var i = 0; i < node.children.length; i++) {
func(node.children[i]);
}
}

显然,因为 JavaScript 没有 block 作用域,所以每次调用函数时都会修改同一个 i 变量。解决此问题的最佳方法是什么?假设使用常规 EcmaScript 3,我不能使用 JavaScript 1.7 “let”。

我知道之前有人问过这个问题,但其他问题似乎没有显示递归,它们显示了一个可以使用闭包的函数调用。

最佳答案

缓存数组的长度,因此您将拥有以下内容:

function recurse(node) {
for(var i = 0, count = node.children.length; i < count; i++) {
recurse(node.children[i]);
}
}

您应该始终缓存,尤其是在处理 HTML 集合时。

关于循环变量和递归的javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6419128/

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