gpt4 book ai didi

javascript - 如何修复此函数以递归地搜索对象中某个键的所有实例?

转载 作者:行者123 更新时间:2023-12-02 23:32:49 25 4
gpt4 key购买 nike

我试图遍历一个对象来查找某个键的所有实例,并获取与该键关联的任何值。 (该对象可能在不同深度多次拥有一个key)

我找到了我想要的值,但是当我尝试从递归“TraverseQuestData”(找到一个值后)向后退时,我陷入了无限循环。

我已经找了好几个小时了,似乎找不到问题出在哪里。将不胜感激我能得到的任何帮助。谢谢!

//traverse table for search_key. add anything to returning data that is a value associated with the search key
function TraverseQuestData(quests, search_key, token_cap, token_partial){
level_data = []
for(var key of Object.keys(quests)){
var value = quests[key]

if(typeof(value) == "object"){

var extra_strings = _.cloneDeep(TraverseQuestData(value, search_key, token_cap, token_partial + key + '_'))
for(i=0; i < extra_strings.length; i++){
level_data.push(extra_strings[i]);
}
} else if(key == search_key){
level_data.push({
token: (token_partial + token_cap),
value: value
});
}
}
return level_data;
}

最佳答案

这是一个愚蠢错误的结果。

level_data 未使用 var 或 let 定义,导致它位于全局范围内。正确确定变量的范围可以解决此问题!

这不是一个无限循环,但由于对象的大小无法区分(程序因步骤太多而崩溃)

关于javascript - 如何修复此函数以递归地搜索对象中某个键的所有实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56422427/

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