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;
}
}
}