首頁  >  文章  >  web前端  >  js如何實作遞迴函數

js如何實作遞迴函數

清浅
清浅原創
2019-04-16 11:50:014539瀏覽

js中的遞歸函數就是指的是在程式碼中呼叫自身的函數,它具有三個特徵分別是當輸入錯誤時發生終止的終止條件,基本案例它是遞歸函數的目標,遞歸即函數實現的功能

遞迴函數指的一個函數呼叫自身函數,接下來在文章中為大家分享的是在js中如何實現遞迴函數,具有一定的參考價值,希望對大家有幫助。

js如何實作遞迴函數

【推薦教學:JavaScript教學

我們可以使用JavaScript從函數的外部或者是在其他函數中呼叫函數。甚至是可以從內部呼叫函數。當一個函數呼叫自身時,就稱為遞歸函數,例

<script>
  function demo(x) {
  if (x < 0) return;
  if (x === 0) return 1;
  return x * demo(x - 1);
}
console.log(demo(3));
</script>

輸出結果為:6

從上面的例子可以看出在return x * demo(x - 1)中實際上是再次呼叫自身函數(demo(x-1)),但是其參數比第一次呼叫的參數少一個,這就是遞迴函數

遞迴函數的三大特徵

#終止條件

終止條件就類似於緊急煞車,它在輸入錯誤的情況可以防止遞歸,在上文的案例中“if (x < 0) return”就是設定的終止條件,所以說當輸入負數時就不會運行遞歸函數。

基本案例

基本案例就是遞迴函數的目標。基本案例通常是放在一個if語句中,在上文的案例中“if (x === 0) return 1;"就是一個基本案例,因為當x的值減少到0時就能成功的確認階乘值了

遞迴

遞迴就是實現的功能,在上例中「return x * demo(x — 1) ;”就是遞迴函數實際發生的位置,將函數傳回的值x乘以demo(x-1)的值就是我們最後所要求的值

#例:

<script>
 function revStr(str){
 //终止条件
 //str === &#39;&#39;是基本案例
  if (str === &#39;&#39;) return &#39;&#39;;
  //递归
  return revStr(str.substr(1)) + str[0];
}
console.log(revStr(&#39;cat&#39;));
</script>

輸出結果為:tac

#總結:以上就是這篇文章的全部內容了,希望對大家有幫助。

以上是js如何實作遞迴函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn