Array Formatting

1. :arrayJoin(separator, index, count)

Syntax Explanation

Joins an array of strings or numbers into a single string.
Parameters:

  • separator: The delimiter (default is a comma ,).
  • index: Optional; the starting index from which to join.
  • count: Optional; the number of items to join starting from index (can be negative to count from the end).
Example
['homer','bart','lisa']:arrayJoin()              // Outputs "homer, bart, lisa"
['homer','bart','lisa']:arrayJoin(' | ')          // Outputs "homer | bart | lisa"
['homer','bart','lisa']:arrayJoin('')              // Outputs "homerbartlisa"
[10,50]:arrayJoin()                               // Outputs "10, 50"
[]:arrayJoin()                                    // Outputs ""
null:arrayJoin()                                  // Outputs null
{}:arrayJoin()                                    // Outputs {}
20:arrayJoin()                                    // Outputs 20
undefined:arrayJoin()                             // Outputs undefined
['homer','bart','lisa']:arrayJoin('', 1)          // Outputs "bartlisa"
['homer','bart','lisa']:arrayJoin('', 1, 1)       // Outputs "bart"
['homer','bart','lisa']:arrayJoin('', 1, 2)       // Outputs "bartlisa"
['homer','bart','lisa']:arrayJoin('', 0, -1)      // Outputs "homerbart"
Result

The output is a string created by joining the array elements according to the specified parameters.

2. :arrayMap(objSeparator, attSeparator, attributes)

Syntax Explanation

Transforms an array of objects into a string. It does not process nested objects or arrays.
Parameters:

  • objSeparator: The separator between objects (default is , ).
  • attSeparator: The separator between object attributes (default is :).
  • attributes: Optional; a list of object attributes to output.
Example
[{'id':2,'name':'homer'},{'id':3,'name':'bart'}]:arrayMap()
// Outputs "2:homer, 3:bart"

[{'id':2,'name':'homer'},{'id':3,'name':'bart'}]:arrayMap(' - ')
// Outputs "2:homer - 3:bart"

[{'id':2,'name':'homer'},{'id':3,'name':'bart'}]:arrayMap(' ; ', '|')
// Outputs "2|homer ; 3|bart"

[{'id':2,'name':'homer'},{'id':3,'name':'bart'}]:arrayMap(' ; ', '|', 'id')
// Outputs "2 ; 3"

[{'id':2,'name':'homer','obj':{'id':20},'arr':[12,23]}]:arrayMap()
// Outputs "2:homer"

['homer','bart','lisa']:arrayMap()    // Outputs "homer, bart, lisa"
[10,50]:arrayMap()                    // Outputs "10, 50"
[]:arrayMap()                         // Outputs ""
null:arrayMap()                       // Outputs null
{}:arrayMap()                         // Outputs {}
20:arrayMap()                         // Outputs 20
undefined:arrayMap()                  // Outputs undefined
Result

The output is a string generated by mapping and joining the array elements, ignoring nested object content.

3. :count(start)

Syntax Explanation

Counts the row number in an array and outputs the current row number.
For example:

{d[i].id:count()}

Regardless of the value of id, it outputs the current row count.
Starting from v4.0.0, this formatter has been replaced internally by :cumCount.

Parameter:

  • start: Optional; the starting value for the count.
Example and Result

In use, the output will display the row number according to the sequence of the array elements.