slice_array

Description

Given an array, returns a possibly smaller array, starting at the given from index, and including items up to but not including the to index. Indices start counting at 0; 0 is the first element. Negative indices start counting at the end; -1 is the last element (not the end of the array!)

When only two arguments are supplied, the array starting at the given from index and ranging to the end of the input is returned. Thus, slice_array(ary, 1) will remove the first element from an array.

A slice where the to element is the same as, or earlier than, the from element, will return an empty array. Similarly, if starting to slice after the end of the array, or ending the slice before the start of the array, an empty array will be returned.

The from and to values must be constant at compile time.

Return type

array

Domain

This is a scalar function (calculates a single output value for a single input row.)

Categories

Usage

slice_array(array, start, [ end ])

Argument

Type

Optional

Repeatable

Restrictions

array

array

no

no

none

start

int64

no

no

constant

end

int64

yes

no

constant

Examples

make_col arr:slice_array(make_array('a','b','c','d'), 1, 2)

Make a new column arr which contains the array ['b'], because it starts at element 1, which is ‘b’, and it stops before element 2, which is ‘c’.

make_col arr:slice_array(make_array('a','b','c','d'), -2)

Make a new column arr which contains the array ['c', 'd'], because it starts at element 2 from the end, which is ‘c’, and runs to the end of the array.