現在、深さが不明なネストされたjavascriptオブジェクトがあります。オブジェクトは純粋に動的に生成されるため、削除するプロパティの親の名前がわかりません(必要に応じて、いくつかのものを作り直して取得することもできますが、それを回避しようとしています)。
search_tree(name)
私は現在、プロパティが見つかるまでオブジェクトのすべてのプロパティを検索し name : "name"
、ツリーのその場所にデータを追加するためにそのオブジェクトを返すという関数を持っています。
ただし、そのオブジェクトをツリーから削除する必要があり、まだ機能していません。私が試してみました:
obj = search_tree(name);
delete obj;
objは実際にはツリー内のオブジェクトではなく、それへの参照であるため、これは機能しないと思います。
delete search_tree(name);
また、結果は得られませんでした。これはこの方法で行うことができますか、それともsearch_tree
何らかの形で遺産を返すように(または単に別のものを作成するために)関数を変更する必要がありますか?ありがとう
search_treeからのコード
function search_tree(element, matchingName){
if(element.name == matchingName){
return element;
}else if (element.children != null){
var result = null;
for(var child in element.children){
result = searchTree(element.children[child], matchingName);
}
return result;
} else {
return null;
}
}
この機能は説明なしでは少し不明確かもしれないことに気づきました。ツリー内の各オブジェクトには、「子」と呼ばれる子オブジェクトがあり、そこには他のオブジェクトがいくつでも格納されます。オブジェクトには、ツリーの一部として検索したくない子オブジェクトが含まれていることが多いため、「子」レイヤーを追加しました。要素は検索対象のオブジェクトです