07-26-2021 01:31 AM
I got an array named “group” includes object items as the below picture
How can I merge all object items to one object? My expected result as the below picture. But, imagine that the number of item is unknown. It can be 3,4,5 , … (n).
Thank you!
Solved! Go to Solution.
07-26-2021 04:10 AM
That won’t be a problem here, because I’m using destructuring assignment ( the three dots ) before the $group
array ...$group
, this will always work for every $group array regardless of the array size, you don’t have to get each index from the $group array, just use ...$group
, this will destructure the array and will be the same as writing $group[0]... $group[n]
multiple times.
04-27-2023 07:21 AM
@dd_snaplogic Can you elaborate and share some examples what you mean by that ?
04-27-2023 07:41 AM
@j.angelevski Under the group object if I have same key, for example
this example as you can see it has same key, so if i use extend function it will override the value with the same key
Is it possible to keep all the values and generate the matching keys dynamically in the same object.
example:
Here is the example slp file
Example Groupby Merge.slp (6.6 KB)
05-02-2023 07:46 AM
Hi @dd_snaplogic,
The following function will give you the result you need:
$group.reduce((acc,curr)=> acc.extend(curr.filter((v1,k1)=> k1!='abc').mapKeys((v,k)=> k+curr.num)),{}).extend($groupBy)
Keep in mind that this will work only if you group the data by 1 field. If you need it to be grouped on multiple fields, then the expression will have to be amended.
Hope this helps,
Bojan