Forum Discussion

GBekkanti's avatar
GBekkanti
New Contributor III
7 years ago

Creating one more field in list of objects by using the fields in same objects

Hi Team,
I have the below input data :
[
{
ID:123
“Name”:“Tony”,
“Age”:24
},
{
ID:124
“Name”:“Sam”,
“Age”:36
},
{
ID:125
“Name”:“Glenn”,
“Age”:58
}]

I need to add one more field ‘halfAge’ to the above and output data should be like below:

[
{
ID:123
“Name”:“Tony”,
“Age”:24,
“halfAge”:12
},
{
ID:124
“Name”:“Sam”,
“Age”:36
“halfAge”:18
},
{
ID:125
“Name”:“Glenn”,
“Age”:58,
“halfAge”:29
}]

Can you please let me know the Expression language for this?

Thanks in Advance!

7 Replies

  • christwr's avatar
    christwr
    Contributor III

    Use a mapper, pass existing fields through, and create a new field $halfAge = $Age / 2

    • GBekkanti's avatar
      GBekkanti
      New Contributor III

      Sorry for my wrong input structure. the below is the correct one. It is a list of objects rather than 3 single objects

      {‘items’:[
      {
      ‘ID’:123,
      ‘Name’:‘Tony’,
      ‘Age’:24
      },
      {
      ‘ID’:124,
      ‘Name’:‘Sam’,
      ‘Age’:36
      },
      {
      ‘ID’:125,
      ‘Name’:‘Glenn’,
      ‘Age’:58
      }]}

      and the view in mapper is like below:

      Can you please process now?

      • tstack's avatar
        tstack
        Former Employee

        Since you’re manipulating an array, you’ll want to look into the “Mapping Root” feature of the Mapper. By pointing the Mapping Root at your array, the Transformations will be applied to the elements of the array instead of the top-level document. Otherwise, the Mapper configuration is the same as suggested by @christwr:

  • @GBekkanti

    sounds like you want to do something like this which you can do using sl.zip()

    sl.zip($items, $genderArray).map(pair => pair[0].extend({ Gender: pair[1] }))