11、TypeScript 之 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
    原文作者:Milo
    原文地址: https://segmentfault.com/a/1190000019376039
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞