[javascript] view plaincoppyprint for (var i = 0; i println(a[i]);
println
如果改用遞歸,看起來比較彆扭:
程式碼如下:[javascript] view plaincopyprint? function(i, a) { if (i println(a[i]); println(a[i]); println(a[i]); 🎜>};
它們能輸出相同的結果,但相較之下遞歸版本看起來很笨拙。
現在想想,如果元資料變化了:維度擴大到二維。
複製程式碼
程式碼如下:
[javascript] view plaincopyprint
此時需要再外面再套一層循環變成雙重循環:
程式碼如下:
[javascript] view plaincoppyprint for (var i = 0; i for (var j = 0; j } } };
如果資料的維度繼續擴大…甚至連維N維數組。使用循環該怎麼處理呢?
在這種「層數」很深,甚至不確定的情況下,就需要用「遞歸」來解決跨「層」的問題。
複製程式碼
程式碼如下:
[javascript] view plaincopyprint return Object.prototype.toString.call(a) === '[object Array]';
};
};
上面的程式碼中,如果發現子節點是一個數組,就使用遞歸進入下一層;而同一層上的遍歷則使用循環來完成。