# All files / utils groupBy.ts

100% Statements 8/8
100% Branches 2/2
100% Functions 2/2
100% Lines 8/8

Press n or j to go to the next uncovered block, b, p or k for the previous block.

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15

    14x
    20x

    20x
    56x
    56x
    30x

    56x

    20x

     type Iteratee = (value: any) => string

    export const groupBy = (data: Array<any>, iteratee: Iteratee) => {
      const result = {}

      data.forEach(value => {
        const index = iteratee(value)
        if (!Array.isArray(result[index])) {
          result[index] = []
        }
        result[index].push(value)
      })
      return result
    }