【发布时间】:2023-04-04 14:42:01
【问题描述】:
我必须创建一个 javascript 函数来对对象进行递归搜索并获取给定 ID 的标签名称。
我尝试使用下面的代码,但它为任何 id 返回undefined。请帮我解决这个问题。
function GetLabel(data, Id) {
var i,
currentChild,
result;
if (Id == data.Id) {
return data['Label'];
} else {
for (field in data) {
if (typeof(data[field]) == "object") {
result = GetLabel(data[field], Id);
if (result != "") return result;
}
if (data[field] == Id) {
result = data['Label'];
return result;
}
}
}
}
【问题讨论】:
-
也向我们展示你的 json
-
假设您的 id 是唯一的,有两种方法。如果您将多次执行此搜索,最好将嵌套结构展平为哈希表,就像一个具有“id”属性的大对象,并且每次需要进行搜索时,您只需像 table[id] 一样查找。或者,如果您不会进行多次搜索,也可以为此作业实施递归方法,每次搜索时都会像疯狗一样遍历整棵树。
标签: javascript object for-loop recursion