ARRAY_SLICE
Function
Return a subarray, supporting starting offset and length.
Syntax
ARRAY_SLICE(arr, offset)ARRAY_SLICE(arr, offset, length)
Parameters
arr:ARRAY<T>.offset: starting position. Positive values count from the head (1is the first element); negative values count from the tail (-1is the last element).length: length to take. A positive value takeslengthelements; a negative value is treated as length 0.
Return value
- Returns
ARRAY<T>of the same type as the input.
Usage notes
- Out-of-bounds safe: the start and end are clipped to the array boundaries. If there is no overlap, an empty array is returned.
Examples
-
Positive starting offset: from the offset to the right end
ARRAY_SLICE([1,2,3,4,5,6], 2)->[2,3,4,5,6]
-
Negative starting offset: from the offset to the right end
ARRAY_SLICE([1,2,3,4,5,6], -3)->[4,5,6]
-
Positive length: take to the right starting from offset
ARRAY_SLICE([1,2,3,4,5,6], 2, 3)->[2,3,4]ARRAY_SLICE([1,2,3,4,5,6], -4, 2)->[3,4]
-
Negative length: treated as length 0
ARRAY_SLICE([1,2,3,4,5,6], 2, -2)->[]
-
Out-of-range arguments: return empty array
ARRAY_SLICE([1,2,3,4,5,6], 10, 3)->[]
-
Any
NULLargument: returnNULLARRAY_SLICE([1,2,3], NULL, 2)->NULLARRAY_SLICE([1,2,3], 2, NULL)->NULLARRAY_SLICE(NULL, 2, 3)->NULL