gpt4 book ai didi

javascript - 非递归代码递归

转载 作者:行者123 更新时间:2023-11-29 16:42:44 29 4
gpt4 key购买 nike

下面的代码应该创建一个简单的“树”,但它变得递归并崩溃。

        var cnt = 0;
var page = {
properties: {},
folders: [],
items: []
};

function createPage() {
var ret = $.extend({}, page);
ret.cnt = cnt++;
return ret;
}
var tree = createPage();

function addFolders(f, n) {
for (var i = 0; i < n; i++) {
f.push(createPage());
}
}


function createData() {
addFolders(tree.folders, 4);
for (var i = 0; i < tree.folders.length; i++) {
addFolders(tree.folders[i].folders, i);
}
}

createData();

有人可以解释一下为什么会发生这种情况吗?

最佳答案

squint 是对的,脚本总是推送到同一个 folders 数组,导致长度不断增加并且永远不会跳出循环。您可以将 createPage 函数更改为:

function createPage() {
return {
properties: {},
cnt: cnt++,
folders: [],
items: []
};
}

关于javascript - 非递归代码递归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43954371/

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