Contact Free trial Login

groupBy

groupBy(Array<T>, (item: T, index: Number) -> R): { (R): Array<T> }

Classifies the elements of a list (array) using the specified criteria function.

This function returns an object containing the grouping criteria as keys.

Parameters

Name Description

items

The list (Array type) to classify in groups.

criteria

Function that receives the item and index of the element to group and should return the criteria to group by.

Example

This example groups the elements of an array based on the language field. Notice that it uses the item.language selector to specify the criteria.

Source

%dw 2.0
output application/json
---
payload groupBy (item) -> item.language

Input

[
    {
      "name": "Foo",
      "language": "Java"
    },
    {
      "name": "Bar",
      "language": "Scala"
    },
    {
      "name": "FooBar",
      "language": "Java"
    }
]

Output

{
  "Scala": [
    {
      "name": "Bar",
      "language": "Scala"
    }
  ],
  "Java": [
    {
      "name": "Foo",
      "language": "Java"
    },
    {
      "name": "FooBar",
      "language": "Java"
    }
  ]
}

groupBy({ (K)?: V }, (value: V, key: K) -> R): { (R): Array<T> }

Groups elements of an object based on a supplied key.

Parameters

Name Description

object

The object to group.

criteria

The key and/or value of the object to use for grouping.

Example

The example groups an object based on its value ($$).

Source

%dw 2.0
output application/json
---
{ "a" : "b"} groupBy $

Output

{
  "b": {
    "a": "b"
  }
}

groupBy(Null, (Nothing, Nothing) -> Any): Null

Helper function that allows groupBy to work with null values.

We use cookies to make interactions with our websites and services easy and meaningful, to better understand how they are used and to tailor advertising. You can read more and make your cookie choices here. By continuing to use this site you are giving us your consent to do this.