orderBy

DataWeave 2.1 is compatible with Mule 4.1. Standard Support for Mule 4.1 ended on November 2, 2020, and this version of Mule will reach its End of Life on November 2, 2022, when Extended Support ends.

Deployments of new applications to CloudHub that use this version of Mule are no longer allowed. Only in-place updates to applications are permitted.

MuleSoft recommends that you upgrade to the latest version of Mule 4 that is in Standard Support so that your applications run with the latest fixes and security enhancements.

orderBy(O, (value: V, key: K) -> R): O

Reorders the content of an object using a value returned by a function as the criteria.

Note that you can reference the index with $$ and the value with $.

Parameters

Name Description

object

The object to reorder.

criteria

The result of the function is used as the criteria to reorder the object.

Example

This example alphabetically orders the values of each object in the array. Note that orderBy($.letter) produces the same result as orderBy($[0]).

Source

%dw 2.0
output application/json
---
orderByLetter: [{ letter: "d" }, { letter: "e" }, { letter: "c" }, { letter: "a" }, { letter: "b" }] orderBy($.letter)

Output

{
  "orderByLetter": [
    {
      "letter": "a"
    },
    {
      "letter": "b"
    },
    {
      "letter": "c"
    },
    {
      "letter": "d"
    },
    {
      "letter": "e"
    }
  ]
}

Example

To invert the order of the resulting array from ascending to descending, simply use -.

Source

%dw 2.0
output application/json
---
orderDescending: ([3,8,1] orderBy -$)

Output

{ "orderDescending": [8,3,1] }

orderBy(Array<T>, (item: T, index: Number) -> R): Array<T>

Sorts an array using the specified criteria.

Parameters

Name Description

array

The list (an array) to sort.

criteria

The result of the function is used as the criteria to sort the list. It should return a simple value (String, Number, etc)

Example

This example sorts an array of numbers based on the numeric values.

Source

%dw 2.0
output application/json
---
[3,2,3] orderBy $

Output

[
  2,
  3,
  3
]

Example

This example sorts an array of people based on their age.

Source

%dw 2.0
output application/json
---
[{name: "Santiago", age: 42},{name: "Leandro", age: 29}, {name: "Mariano", age: 35}] orderBy (person) -> person.age

Output

[
  {
    name: "Leandro",
    age: 29
  },
  {
    name: "Mariano",
    age: 35
  },
  {
    name: "Santiago",
    age: 42
  }
]

orderBy(Null, (item: Nothing, index: Nothing) -> Null): Null

Helper function that allows orderBy to work with null values.

Was this article helpful?

💙 Thanks for your feedback!

Edit on GitHub