JS はサブセット (ネストされた配列) を含む配列のコレクションを反復処理します。

js の 2 種類の for ループ:
for (var i in obj) と for (var i=0; i<obj.length; i++)

違い:
for (var i in obj) は拡張された for ループであり、添え字を使用しない走査方法であり、シンプルで効率的ですが、添え字が使用できないという欠点があります。
json オブジェクトをループする場合は、最初のオブジェクトを使用します。

配列オブジェクトをループする場合は、2 番目のオブジェクトを使用します。

for(var i in obj)
1. 配列を走査する場合、i はインデックス値、arr[i] はインデックス番号に対応する値です。
2. 文字列をトラバースする場合、i はインデックス値、arr[i] はインデックス番号に対応する文字です。
3. json オブジェクトをトラバースする場合、i はコロンの前の値、json[i] はコロンの後の値です。

入れ子になった配列の走査 (再帰) [判断サブセット]

traversal(dataInfo)//dataInfo是要循环遍历的集合

//遍历方法
function traverse(data) {
            for (var i in data) {
                if (data[i].children) {
                    traverse(data[i].children)
                }
                if (!data[i].children.length) {
                    delete data[i].children;
                }
            }
        }

たとえば、私のコレクションは次のとおりです

 Nameを取得して出力したいのですが、コードは次のとおりです

traversal(dataInfo)//dataInfo是要循环遍历的集合

//遍历方法
function traverse(data) {
            for (var i in data) {
                alert(data[i].Name)
                if (data[i].children) {
                    traverse(data[i].children)
                }
                if (!data[i].children.length) {
                    delete data[i].children;
                }
            }
        }

おすすめ

転載: blog.csdn.net/growb/article/details/130347953