近期更新完,后面不定期更新,建議關注收藏點贊。
目錄
- 快排
- 手寫防抖節流
- 數組扁平化(要求使用 reduce 方法)
- 數組filter實現
- 手寫一個加載圖片的函數 loadImage
- 手寫Promise then
- 手寫 Promise.All
- 手寫 Promise.race
- 手寫allsettled
- 手寫usecontext傳值
- 手寫call/apply/bind
- 手寫深拷貝
- 手寫監聽事件on和觸發事件emit
- 多維數組展開
- 手寫柯里化
- 正則表達式
快排
手寫防抖節流
數組扁平化(要求使用 reduce 方法)
數組filter實現
手寫一個加載圖片的函數 loadImage
手寫Promise then
手寫 Promise.All
手寫 Promise.race
手寫allsettled
手寫usecontext傳值
手寫call/apply/bind
手寫深拷貝
手寫監聽事件on和觸發事件emit
多維數組展開
- 實現 flattenByDepth 函數。這個函數會按照指定的深度展開嵌套數組, 可以使用遞歸或迭代方式 需要考慮 depth 為 0 或負數的情況 注意不要修改原數組。簡單實現 const flat = (arr,n)=>{ if(n<=0) return […arrr] let res = [] arr.forEach(item=>{ if(Array.isArray(item)){ res = […res,…flat(item,n-1)] }else{ res.push(item) } }) return res } 另一種實現 const flat = (arr,n)=>{ if(n<=0) return arr return arr.reduce((pre,cur)=>{ if(Array.isArray(cur)){ return pre.concat(flat2(cur,n-1)) }else{ return pre.concat(cur) } },[]) }
手寫柯里化
手撕柯里化,一個四個參數的函數,函數處理變成柯里化函數。
正則表達式
^(?!wiki$)(?!tags$).+ //既不是wiki 也不是tags 這些詞