param arr param kFn export function groupBy < T , K > ( arr , kFn ) ; param arr param kFn param vFn 元素分组的值处理的函数。第一个参数是累计值，第二个参数是当前正在迭代的元素，如果你使用过  Array 函数的话应该对此很熟悉
 *  returns export function groupBy < T , K , R extends any [ ] > ( arr , kFn , vFn ) ; export function groupBy < T , K , R > ( arr , kFn , vFn = ( res , item ) => { res . push ( item as any ) ; return res ; } ) { return arr . reduce ( ( res , item , index , arr ) => { const k = kFn ( item , index , arr ) ; res . set ( k , vFn ( res . get ( k ) || [ ] , item , index , arr ) ) ; return res ; } , new Map < K , R [ ] > ( ) ) ; }