成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

javascript - 怎么學(xué)會遞歸?

瀏覽:118日期:2023-03-14 15:58:48

問題描述

感覺難以理解,有好多建議嗎?

問題解答

回答1:

看看我之前對一個遞歸問題的回答. 函數(shù)的實現(xiàn)功能方面理解遞歸不知道對你有沒有幫助.

回答2:

簡單的理解就是:函數(shù)調(diào)用自身。

合格的遞歸要有結(jié)束條件。

明白這2點,就OK了。

回答3:

要想學(xué)會遞歸,首先要學(xué)會遞歸。

遞歸就是包子餡的包子,極限是饅頭。

給出一個正常的代碼示例:

假設(shè)我們想要遍歷一個【嵌套的】數(shù)據(jù)結(jié)構(gòu),如【DOM 元素的 children 屬性還是同類型的 DOM 元素】,這時就會使用到最簡單而常見的遞歸:函數(shù)調(diào)用自己,一層層解開嵌套,這只需要一兩行 JS 即可實現(xiàn):

function walk (node) { // 先打印出本節(jié)點的值 console.log(node.value) // 對每個 child 調(diào)用自身 node.children.forEach(child => walk(chid))}// 簡單的樹形嵌套數(shù)據(jù)結(jié)構(gòu)示例const tree = { value: 1, children: [ { value: 2, children: [] }, { value: 3, children: [{ value: 4, chilren: [] }] }, { value: 5, children: [] } ]}// 遍歷該樹形數(shù)據(jù)結(jié)構(gòu)walk(tree)回答4:

遞歸其實不難理解,我舉個例子,6層高的樓,只有一層有蘋果,我們在任何一層找到蘋果,都會停止。。查找一次都會出現(xiàn)2個結(jié)果,做判斷需要不需要往下找,往下找就是重復(fù)第一個過程,這就是遞歸。

回答5:

int i;int function a(i){ if (i < 2) return a(i+1); else return i;}a(0); //執(zhí)行后返回2

上面代碼便于理解沒寫標(biāo)準(zhǔn),遞歸就是調(diào)用自己形成嵌套.因為只有一個return語句,所以調(diào)用a(0)后我們可以這樣看:嵌套進去:

a(0)->a(a(0+1))->a(a(1))a(a(a(1+1)))->a(a(a(2)))

在回來:

a(a(a(2)))->a(a(2))a(a(2))->a(2)a(2)->2回答6:

一個老司機的經(jīng)驗:多練多悟 javascript - 怎么學(xué)會遞歸?

標(biāo)簽: JavaScript
相關(guān)文章: