reduce函式常用於對陣列,reduce函式接受3個引數
被迭代的陣列
用於迭代計算的函式
迭代的初始值
注意點:如果沒有提供初始值時,會預設使用陣列的第乙個元素來作為初始值
function
reduce
(arr, callback, initialval)
// 如果沒有將initialval傳遞給該函式,預設使用陣列第一項作為initialval
const hasinitialval = initialval !== undefined;
let value = hasinitialval ? initialval : arr[0]
;// 如果有傳遞initialval,則索引從1開始,否則從0開始
for(
let i = hasinitialval ?0:
1; i < arr.length; i++
)return value;
}
前端手寫系列 手寫簡易版深拷貝
深拷貝方式1 json.parse json.stringify obj 這種方式有很多缺點,會忽略undefined,symbol,函式,不能解決迴圈引用的問題,不能處理正則,new date 以下深拷貝只考慮了物件和陣列的情況,其餘諸如date,function,regexp都沒有考慮 簡易版深...
手寫前端 serialize
在jquery中,寫下我們很方便序列化我們的表單,比如說 window.onload function 但是jquery庫是沉重的,那麼如何手寫乙個呢?思想 首先無論如何你都要去遍歷form裡面的,每乙個元素如input text radio select checkbox,獲取到name,然後va...
手寫系列 debounce
函式防抖 debounce 當持續觸發事件時,一定時間段內沒有再觸發事件,事件處理函式才會執行一次,如果設定的時間到來之前,又一次觸發了事件,就重新開始延時。如下圖,持續觸發scroll事件時,並不執行handle函式,當1000毫秒內沒有觸發scroll事件時,才會延時觸發scroll事件。fun...