有些時候 咱們並不肯定函數參數的長度;數組
需求:函數
我想用實現一個數組內全部的元素相加,這裏方便的使用了 reduce() 遞歸; 剛好 這個函數的參數我是不知道他的長度的;
稍微跑題一下,着重的說一下 reduce() 這個函數的用法:code
arr.reduce(callback, initialValue)
callback 接收 4 個參數:遞歸
callback (執行數組中每一個值的函數,包含四個參數) 一、previousValue (上一次調用回調返回的值,或者是提供的初始值(initialValue)) 二、currentValue (數組中當前被處理的元素) 三、index (當前元素在數組中的索引) 四、array (調用 reduce 的數組) initialValue (可選參數,函數的初始值)
arr.reduce((previousValue, currentValue, index, array) => { return previousValue + currentValue }, [initialValue])
reduce 爲數組中的每個元素依次執行回調函數,不包括數組中被刪除或從未被賦值的元素,reduce 中的 callback 接受四個參數:初始值(或者上一次回調函數的返回值),當前元素值,當前索引,調用 reduce 的數組。索引
瞭解了 reduce( ) 函數之後 咱們能夠穿一些簡單的參數 來計算他的返回值了回調函數
const add = (num: number, arr: Array<number>): number => { return arr.reduce((previousValue, currentValue, index, array) => { return previousValue + currentValue }, num) }; const arr: Array<number> = [1, 2, 3, 4]; let result = add(10, arr); console.log(result); //20