%dw 2.0
output application/json
---
{"a":"b","c":"d"} pluck (value,key,index) -> { (index) : { (value):key} }
pluck
pluck<K, V, R>(@StreamCapable object: { (K)?: V }, mapper: (value: V, key: K, index: Number) -> R): Array<R>
Useful for mapping an object into an array, pluck
iterates over an object
and returns an array of keys, values, or indices from the object.
It is an alternative to mapObject
, which is similar but returns
an object, instead of an array.
Parameters
Name | Description |
---|---|
|
The object to map. |
|
Expression or selector that provides the |
Example
This example iterates over { "a":"b","c":"d"}
using the
anonymous mapper function ((value,key,index) → { (index) : { (value):key} }
)
to invert each key-value pair in the specified object and to return their
indices as keys. The mapper uses named parameters to identify
the keys, values, and indices of the object. Note that you can write
the same expression using anonymous parameters, like this:
{"a":"b","c":"d"} pluck { ($$$) : { ($):$$} }
Unlike the almost identical example that uses mapObject
, pluck
returns
the output as an array.
Example
This example uses pluck
to iterate over each element within <prices/>
and returns arrays of their keys, values, and indices. It uses anonymous
parameters to capture them. Note that it uses as Number
to convert the
values to numbers. Otherwise, they would return as strings.