ホームページ >ウェブフロントエンド >jsチュートリアル >close_javascript スキルを使用してツリー配列を走査する js メソッド

close_javascript スキルを使用してツリー配列を走査する js メソッド

WBOY
WBOYオリジナル
2016-05-16 16:55:101333ブラウズ

会社のプロジェクトを実行する場合、メソッドのパラメータは、以下に示すように、ツリー JSON です。 🎜>

コードをコピー コードは次のとおりです:[{"id":28,"text":"会社情報" 、"子供たち":[
{"id":1,"text":"企業文化"},

{"id":2,"text":"採用計画"},

{"id":6,"text":"会社ニュース","子供たち":[

{"id":47,"text":"業界ニュース"}]},

{"id":11,"text":"社内ニュース","子供たち":[

{"id":24,"text":"管理情報"},

{"id":27、 "text": "high-level命令"}]}、

{"id":22,"text":"お問い合わせ"},

{"id":26,"text":"商品の表示","子供":[

{"id":32、 "text": "電気製品"}、

{"id":33,"text":"アクセサリー紹介"}}]

}] }]

現在指定されているメニュー ID は 32 です。対応する項目を見つけて、対応するメニュー名を返す必要があります。このメソッドは、項目の ID が指定された ID と等しい場合に、最初に配列をループします。に等しくない場合は、現在の項目に子があるかどうかを確認します。子が空ではなく、数値が 0 より大きい場合は、この時点で子をトラバースする必要があります。 javascript を使用して、子を走査するメソッドを匿名メソッドに置き、再帰自体が常に匿名メソッド内にあるように、同じ名前の ID が見つかった場合はループから抜け出し、取得したメニュー名を返します。 main メソッドからのコードは次のとおりです:


コードをコピーします コードは次のとおりです: 関数getMenuName(menus, id) {
var name = "" ;
for (var i = 0; i if (menus[i].id == id ) {
name = menu[i].text;
Break;
}
else {
(function (function ( ) {
var m = argument[0];
var menuid = arguments [1];
for(var j = 0; j< m.length; j){
if(m [j] .id == menuid){
。 Children.length > 0) {
argument.callee(m[j].children, val); // 再帰的匿名メソッド
. }
名前を返します;
}

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。