parent_child_index

Modified on Thu, 9 Jul at 10:49 AM

parent_child_index

TABLE OF CONTENTS

Provide subarrays with consistent indexing


Definition

array[object] parent_child_index(array[object] $array, expression->[number|string|boolean|datetime] $childArraySelector)

For an array $array of objects that share an array property with the same name $childArraySelector, introduces indexing of the $childArraySelector arrays that continues through the entire array.

Parameters

array[object] $array

Array of objects that have a key with the same name that has an array value.

expression->array[any] $childArraySelector

An expression that returns an array, most commonly the array identifier.

Returns

The input array, where the objects that are elements of the $childArraySelector arrays have an extra property _calculatedIndex added. The value of _calculatedIndex is equal to the ordinal number of the object when considered across all $childArraySelector arrays from the top down.

Example

Sample data
{
  "employees":[
    {
      "department": "sales",
      "members":[{"name": "Anna"}]
    },
    {
      "department": "legal",
      "members":[{"name": "Bob"}, {"name": "Clara"}]
    },
    {
      "department":"engineering",
      "members":[{"name": "David"}}]
}
Transformation
{
  employeesIndexed: parent_child_index(employees, members)
}
Result
{
  "employeesIndexed":[
    {
      "department": "sales",
      "members":[{"name": "Anna","_calculatedIndex": 1}]
    },
    {
      "department": "legal",
      "members":[
        {"name": "Bob","_calculatedIndex": 2},
        {"name": "Clara","_calculatedIndex": 3}]
    },
    {
      "department": "engineering",
      "members":[{"name": "David","_calculatedIndex": 4}]
    }]
}

Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article