Thursday 2 May 2024

What’s the difference between mapobject & pluck ? in MuleSoft 358

 What’s the difference between mapobject & pluck ? in MuleSoft

Both mapObject and pluck functions in DataWeave (MuleSoft 4) deal with manipulating objects, but they serve different purposes and produce distinct outputs:

1. mapObject Function:

  • Purpose: Iterates over the key-value pairs of an object and applies a transformation function to each value.

  • Syntax: mapObject(object, transformationFunction)

  • Output: Returns a new object with the same keys but transformed values.

  • Use Cases:

  • Transforming values within an object based on specific logic (e.g., converting strings to uppercase, manipulating numeric values).

  • Filtering object properties based on a condition within the transformation function.

  • Example:

%dw 2.0
input: { name: "John", age: 30 }
output: mapObject(input, (key, value) =>
  if (key == "age") then value * 2 else value end)

// Output: { name: "John", age: 60 } (age is doubled)

2. pluck Function:

  • Purpose: Extracts specific keys, values, or indices from an object.

  • Syntax: pluck(object, keySelector)

  • Output: Returns a new array containing the extracted elements.

  • Use Cases:

  • Selecting specific properties from an object to create a new array.

  • Extracting values based on their index position within the object (if the object has an underlying array-like structure).

  • Example:

%dw 2.0
input: { name: "John", age: 30, city: "New York" }
output: pluck(input, ["name", "city"])

// Output: ["John", "New York"] (extracts name and city)

Key Differences Table:


mapObject Function

pluck Function


Transforms values within an object

Extracts specific elements from an object


mapObject(object, transformationFunction)

pluck(object, keySelector)





New object with transformed values

New array containing extracted elements

Use Cases

Value manipulation, conditional transformations

Property selection, extracting values by key or index

Choosing the Right Function:

  • Use mapObject when you need to iterate over all key-value pairs and transform the values based on a specific logic.

  • Use pluck when you want to extract specific properties or values from an object to create a new array.

In essence:

  • mapObject is suitable for value transformations within an object.

  • pluck is ideal for selecting specific elements and creating an array from an object.

Remember, understanding these functions empowers you to effectively manipulate objects within your MuleSoft 4 integration flows using DataWeave.

No comments:

Post a Comment

Note: only a member of this blog may post a comment.