cancel
Showing results for 
Search instead for 
Did you mean: 

How to get Index of Array list along with the data

arvindnsn
Contributor

Hello,

I am working on API’s and while pulling the data from API and storing in the DB. The API is returning data in Arrays and while using the splitter i am able to split the data of arrays and load into the DB.

But my requirement is to also store the Array Index number of each record from the Array along with the data. I tried using the Array function named findIndex(), but in vain.

I would really appreciate if i get a solution for this issue.

Thanks
Aravind N

1 ACCEPTED SOLUTION

Yes, indexOf() returns the index not the value.

Using your example data in a json generator, and a mapper with this expression:
$items.map(value => value.extend({'Data_Index':$items.indexOf(value)}))

you will see that the original map uses extend to add the index of each element to a new field ‘Data_Index’ in each value in the list.

View solution in original post

8 REPLIES 8

cjhoward18
Employee
Employee

I believe you are looking for the indexOf() method to look for the index of a particular value. Documentation is located here:

https://docs-snaplogic.atlassian.net/wiki/spaces/SD/pages/1438091/Array+Functions+and+Properties#Arr...

instead of the findIndex() method, which requires a callback function rather than a simple value

I am not looking for a value of a particular Index. If i have 50 items in my Array list, then when i use the splitter to split the Array values, I should have the data look like below

For example if the Array item returned is like below

{

“items”: [

   {

      "FIRST_NAME":"Bob",

      "LAST_NAME" : "Marley",

      "ID": "12"

   },

   {

      "FIRST_NAME":"Eric",

      "LAST_NAME" : "Cartman",

      "ID": "9"

   },

   {

      "FIRST_NAME":"Ralph",

      "LAST_NAME" : "Wreckit",

      "ID": "8"

   }

]

}

My data should look like

Firstname Lastname ID Data_Index


Bob Marley 12 0
Eric Cartman 9 1
Ralph Wreckit 8 2

Yes, indexOf() returns the index not the value.

Using your example data in a json generator, and a mapper with this expression:
$items.map(value => value.extend({'Data_Index':$items.indexOf(value)}))

you will see that the original map uses extend to add the index of each element to a new field ‘Data_Index’ in each value in the list.

That worked wonderful!! Thanks a lot for the help. Much Appreciated.