{{announcement.body}}
{{announcement.title}}

Identifying Duplicate Values in an Array using Mule 4 DataWeave 2.0

DZone 's Guide to

Identifying Duplicate Values in an Array using Mule 4 DataWeave 2.0

This brief tutorial shows how to create a function with DataWeave that helps identify duplication in an array.

· Integration Zone ·
Free Resource

Hi Guys,

We might have seen how to remove duplicates using the distinctBy function of DW 2.0.

But what if we have a scenario where we need to know what are the values that are repeated more than once?

In that case, I have written a small function to identify the duplicate values that are present in an array.

Just to explain about the function I have written below:

  • distinctVal is a variable which returns distinct Values by removing duplicates
  • duplicates is a variable which iterates distinctVal data which we got in the above step over original data and checks if the value is repeated more than once.

Let's consider an array which has values  [  "a" , "b" ,"a" ,"c" ,"d", "e" ,"c" ,"f" ]

In the above array, we see that values "a" and "c" are repeated more than once and we have to find that using DataWeave code. Let's do it!

DataWeave code:

JSON
 




xxxxxxxxxx
1
25


 
1
%dw 2.0
2
 
          
3
output application/json  
4
 
          
5
var record =     [    "a" , "b" ,"a" ,"c" ,"d", "e" ,"c" ,"f" ]
6
 
          
7
 var distinctVal = record distinctBy $
8
 
          
9
 var duplicates = (distinctVal map(key,value) -> {
10
 
          
11
    count : if(sizeOf((record map $ == key) filter $ ) > 1) key else null
12
 
          
13
}) filter $.count !=null 
14
 
          
15
---
16
 
          
17
{
18
 
          
19
    distincValues : distinctVal,
20
 
          
21
    
22
 
          
23
    duplicatesAre : duplicates.count
24
 
          
25
}


Output :

Java
 




x
27


 
1
{
2
 
          
3
  "distincValues": [
4
 
          
5
    "a",
6
 
          
7
    "b",
8
 
          
9
    "c",
10
 
          
11
    "d",
12
 
          
13
    "e",
14
 
          
15
    "f"
16
 
          
17
  ],
18
 
          
19
  "duplicatesAre": [
20
 
          
21
    "a",
22
 
          
23
    "c"
24
 
          
25
  ]
26
 
          
27
}


So here :

"distinctValues" are the final array of values by removing the values which are repeated

"duplicatesAre" will display the values that are repeated more than once.

In this way, you can find the duplicate values in an array using DataWeave 2.0


Happy Learning!

Topics:
dataweave 2, dataweave functions, mule 4, mule 4 tutorial, mule developer, mulesoft, mulesoft integration, mulesoft tutorial

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}