我想遍历从特定根对象开始的对象图,并找到从它开始的哪个路径通向具有给定值的属性的对象。到目前为止,这是我的代码:
function findPropertyValue(obj, value) {
if (typeof obj.seenBefore === "undefined") {
// treat for object graph circularity
obj.seenBefore = true;
for (var key in obj) {
if (obj[key] == value) {
return key;
} else {
if (obj[key]) {
var foundIt = findInput(obj[key], value);
if (foundIt) {
return key + '.' + foundIt;
}
}
}
}
}
return false;
};
它的问题是它很快就达到了 Chrome 上的调用堆栈大小限制并且无法继续搜索。是否有另一种方法可以做到这一点或仅出于调试目的增加堆栈大小限制?