$, $$, $$$ Syntax

HOFs are so prolific in DataWeave’s library that there are additional syntax features that make them easier to use. For functions that DataWeave provides, you can represent the first, second, and third arguments of the passed lambda as $, $$, and $$$, respectively. When you do this, you do not need to specify the arguments of the lambda when you pass it to the function. Here’s our odd number filter example from earlier using the dollar-sign syntax:


DW Script:

%dw 2.0
output json

var numbers = (1 to 5)
---
numbers filter (($ mod 2) == 1)

Output:

[1,3,5]


The dollar-sign syntax gives us all the same functionality as when we reference something by its name. This means we can chain selectors and indexes right off of the dollar-sign in order to query data:


Input:

[
  {
    "id": 1,
    "item": "cheese",
    "price": 4.00  
  },
  {
    "id": 2,
    "item": "steak",
    "price": 15.00  
  },
  {
    "id": 3,
    "item": "cereal",
    "price": 5.00  
  },
  {
    "id": 4,
    "item": "apples",
    "price": 2.00  
  }
]

DW Script:

%dw 2.0
output json
---
payload filter $.price > 5

Output:

[
  {
    "id": 2,
    "item": "steak",
    "price": 15.00  
  }
]

Follow Me

If you like my post please follow me to read my latest post on programming and technology.

Instagram

Facebook

Recent Posts

Minimum Cost to Paint Houses with K Colors

A builder plans to construct N houses in a row, where each house can be…

1 day ago

Longest Absolute Path in File System Representation

Find the length of the longest absolute path to a file within the abstracted file…

3 weeks ago

Efficient Order Log Storage

You manage an e-commerce website and need to keep track of the last N order…

1 month ago

Select a Random Element from a Stream

You are given a stream of elements that is too large to fit into memory.…

1 month ago

Estimate π Using Monte Carlo Method

The formula for the area of a circle is given by πr². Use the Monte…

2 months ago

Longest Substring with K Distinct Characters

Given an integer k and a string s, write a function to determine the length…

2 months ago