配列内のすべての要素を一覧表示しようとしています。ご覧のとおり、 Company には 3 つのレベルがありますが、出力を出力するスクリプトは 2 つのレベルまでしか記述していません。3 番目のレベルにアクセスするにはどうすればよいですか? 3番目の内部で使用する必要がある配列は何for loop
ですか?
2 に答える
2
あなたが探しているのは再帰です。
ここにあなたのフィドルの修正版があります:http://jsfiddle.net/jEmf9/
function generateEntity(obj) {
var html = [];
var name = obj.entity;
html.push('<li>');
html.push(name);
html.push('</li>');
var arrayName = name.replace(/\s/gi, '_');
if (obj[arrayName] == undefined) {
return html.join('');
}
var entity = obj[arrayName];
for (var i = 0; i < entity.length; i++) {
html.push('<ul>');
html.push(generateEntity(entity[i]));
html.push('</ul>');
}
return html.join('');
}
于 2012-07-13T05:17:36.527 に答える
0
あなたの場合、第 3 レベルにアクセスするための特別なテクニックは必要ありません。任意の深さのツリーをレンダリングできるように、再帰的なツリー ウォーキング関数を記述する必要があります。
ここでコードの簡単なパッチを作成しました:http://jsfiddle.net/rtoal/xcEa9/6/
思い通りに動作するようになったら、html の作成に取り掛かることができます。を使用した文字列連結の繰り返し+=
は非常に非効率的であることが知られていますが、それはこの質問の範囲外です。:)
于 2012-07-13T05:17:28.350 に答える