gpt4 book ai didi

javascript - 递归函数中的for循环

转载 作者:行者123 更新时间:2023-11-28 05:25:22 25 4
gpt4 key购买 nike

我在递归函数中面临关键问题。这是我的递归函数:

iterateJson(data, jsonData, returnedSelf) {
var obj = {
"name": data.groupName,
"size": 4350,
"type": data.groupType
};

if (data.parentGroupName == jsonData.name) {
jsonData.children.push(obj);
} else {
if (jsonData.children) {
for (var i = 0; i < jsonData.children.length; i++) {
if (data.parentGroupName == jsonData.children[i].name) {
jsonData.children[i].children.push(obj);
elementFound = true;
break;
}
}
if (elementFound) {
return jsonData;
} else {
if (jsonData.children) {
for (i = 0; i < jsonData.children.length; i++) {
if (elementFound) {
return jsonData;
} else {
jsonData = jsonData.children[i];
jsonData = returnedSelf.iterateJson(data, jsonData, returnedSelf);
}
}
}
}
}

}

return jsonData;

},

现在的问题是,在第二个 for 循环中,(jsonData.children.length)

我的 jsonData 正在更改。如何保留父级 jsonData 。

希望我的问题很清楚。编辑使其更精确。假设最初 jsondata 有 5 个元素,我进入循环将第一个子元素作为新的 jsonData 并再次调用此函数。因此,当条件满足时,它应该返回 for 循环,并且 jsonData 应该具有 5 个数据的初始元素。相反,它具有新的 json 数据,它是原始 jsonData 的第一个子元素。

我的问题是如何保留具有 5 个元素的父级 jsonData。

最佳答案

因为我不知道输入数据,但是

jsonData = jsonData.children[i];
jsonData = returnedSelf.iterateJson(data, jsonData, returnedSelf);

这只是可以覆盖 jsonData 的行。

关于javascript - 递归函数中的for循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40216050/

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