js遞迴陣列遍歷

2022-09-19 09:09:10 字數 802 閱讀 4423

var list = this.linklist;

var str = 4;

var num = 0;

var getstr = function (list) else

});};

getstr(list);

console.log(list);

可以看到,遞迴的方式來實現的時候,我們只需要乙個for迴圈,每次遍歷接受到的資料,通過判斷是否還有children,沒有就代表是最後一級了,有就繼續把children這個list傳給函式繼續遍歷,最後就得到了我們想要的資料。

很明顯,foreach的遍歷的方式能實現多級的遍歷,並且資料格式可以靈活一些,但是遍歷的層級有限,而且對於未知層級的情況下,就無從下手了。

遞迴遍歷,理論上,只要記憶體夠用,你能實現任意層級的遍歷,但缺點也很明顯,沒乙個層級裡面需要有固定的資料格式,否則無法遍歷。

總結

1.很多時候可以用遞迴代替迴圈,可以理解為遞迴是一種特殊的迴圈,但通常情況下不推薦這樣做。

2.遞迴一般是在函式裡面把函式自己給呼叫一遍,通過每次呼叫改變條件,來結束迴圈。

3.遞迴在資料格式一致,在資料層級未知的情況下,比普通的遍歷更有優勢。

4.遞迴在非同步的時候,更容易理解,且更容易實現,因為可以在非同步的**裡面,呼叫自己來實現每次都能拿到非同步的結果再進行其他操作。

5.遞迴實現的快速排序比普通遍歷實現的排序效率更好。

js陣列遍歷

一 for迴圈類 基礎for迴圈 for let arr for let i 0,len arr.length i len i for in迴圈 for in param key 索引 下標 for var key in arr for in迴圈 for of param item 物件 for l...

js陣列遍歷

1 如何建立陣列。2 陣列的長度,陣列元素的新增和刪除 如何使用下標對陣列的操作 3 遍歷陣列的方式 for迴圈,for in遍歷 4 二維陣列 舉例並遍歷二維陣列 5 運算元組的方法。push pop unshift shift splice reverse sort join slice con...

js 陣列遍歷 物件遍歷

一 陣列遍歷 1,普通for迴圈,經常用的陣列遍歷 var arr 1,2,0,3,9 for var i 0 i 2,優化版for迴圈 使用變數,將長度快取起來,避免重複獲取長度,陣列很大時優化效果明顯 for var j 0,len arr.length j len j 3,foreach,es...