乐趣区

11TypeScript-之-Rest-parameters

有些时候 我们并不确定函数参数的长度;

需求:

 我想用实现一个数组内所有的元素相加,这里方便的使用了 reduce() 递归;恰好 这个函数的参数我是不知道他的长度的;

稍微跑题一下,着重的说一下 reduce() 这个函数的用法:

arr.reduce(callback, initialValue)

callback 接收 4 个参数:

callback(执行数组中每个值的函数,包含四个参数)1、previousValue(上一次调用回调返回的值,或者是提供的初始值(initialValue))2、currentValue(数组中当前被处理的元素)3、index(当前元素在数组中的索引)4、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
退出移动版