特定のルート オブジェクトから開始してオブジェクト グラフをトラバースし、そこから開始して、特定の値を持つプロパティを持つオブジェクトにつながるパスを見つけたいと考えています。これまでの私のコードは次のとおりです。
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 のコール スタック サイズの制限にすぐに達し、検索を続行できないことです。これを行うか、デバッグ目的でのみスタックサイズの制限を増やす別の方法はありますか?