當前位置:網站首頁>遞歸以及for循環裏async 和 await 的用法
遞歸以及for循環裏async 和 await 的用法
2022-01-27 17:15:18 【前端紙飛機】
遞歸?
一般便是會問以下幾點
1.什麼是遞歸
廣義上:程序調用自身的編程技巧稱為遞歸( recursion),他是個算法。
有幾個要素:遞歸需要有邊界條件、遞歸前進段、遞歸返回段。
2.遞歸能够解决什麼問題
階乘(面試常問),菲波拉鍥數(面試常問)、等
階乘的公式是: n! = 1 * 2 * 3 * 4 * ... * (n-2) * (n-1) * n
3.怎麼實現一個遞歸
//例如:計算5的階乘
function jie(n){
if(n == 1){
//跳出條件
return 1;
}
return n*jie(n-1); //5*jie(4)
}
var result = jie(5);
console.log(result);
for循環裏調用async await
需求,遍曆一個數組,請求後臺接口挨個改變數組每一項,全部改變後再次提交。
function getData(n){
//通過該接口改變數據
// console.log('n',n)
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve(n+1)//原來的數據上+1
},400)
})
}
let data = [0,1,2,3,4,5,6,7,8,9]
async function subData(){
//提交數據保存
for(let i = 0;i<data.length;i++){
const res = await getData(data[i])
console.log(res)
} //改變數據
console.log('sub')//提交數據
}
subData()
改用遞歸的方式:
function getData(n){
//通過該接口改變數據
// console.log('n',n)
return new Promise((resolve,reject)=>{
setTimeout(()=>{
resolve(n+1)//原來的數據上+1
},400)
})
}
let data = [0,1,2,3,4,5,6,7,8,9]
async function digui(index,arr){
if(index<data.length){
let res = await getData(data[index])
console.log(res)
arr.push(res)
await digui(index+1,arr)
}
return arr
}
async function subData(){
const newList = await digui(0,[])
// console.log(newList)
console.log('sub')
}
subData()
大概就這麼些了,希望對你有幫助。
版權聲明
本文為[前端紙飛機]所創,轉載請帶上原文鏈接,感謝
https://cht.chowdera.com/2022/01/202201271715181770.html
邊欄推薦
猜你喜歡
隨機推薦
- uniapp上傳圖片及組件傳值
- 瑞利年金險資金保障安全嗎?收益高不高啊?
- 華為手機USB連不上電腦的解决方法
- Flutter 2,移動金融應用開發
- 關於st25系列NFC標簽簡單介紹及st25TV系列用於門禁讀取時的注意事項總結
- 關於用ffmpeg轉手機視頻發現視頻長寬倒了的問題
- 函數 / 類模板--模板2
- 數組中的第k個最大的元素--優先級隊列、排序、堆、排序
- 單片機實例27——ADC0809A/D轉換器基本應用技術(硬件電路圖+匯編程序+C語言程序)
- Collection集合的學習
- 一場面試結束,某度員工從事Android 5年為何還是初級工程師?
- 3本書閱讀筆記【人月神話-Go語言實戰-研發能力持續成長路線】01
- PHP垃圾回收機制
- 【電子技術】什麼是LFSR?
- 死鎖?如何定比特到死鎖?如何修複死鎖?(jps和jstack兩個工具)
- 快樂寒假 22/01/20
- image
- 噴程序員?SURE?
- LDO分壓電阻計算小工具
- 面試之求一串字符串中每個字符的出現次數
- 【ISO15765_UDS&OBD診斷】-01-概述
- 【Mysql上分之路】第九篇:Mysql存儲引擎
- RHCE 第一次作業
- 2021.10.16我的第一篇博客:一切皆有可能!
- CTA-敏感行為-讀取IMEI
- 面試被問怎麼排查平時遇到的系統CPU飆高和頻繁GC,該怎麼回答?
- nuxt項目總結-綜合
- 自然語言處理學習筆記(一)
- C語言第一課
- 各比特大佬,Spark的重點難點系列暫時更新完畢
- 基於 esbuild 的 universal bundler 設計
- XCTFre逆向(四):insanity
- 理解什麼是真正的並發數
- JVM腦圖
- 【Pytorch(四)】學習如何使用 PyTorch 讀取並處理數據集
- 函數棧幀的創建與銷毀
- 構建神經網絡- 手寫字體識別案例
- 多模態生成模型ERNIE-VILG
- kotlin不容忽視的小細節
- 備戰一年,終於斬獲騰訊T3,我堅信成功是可以複制的