Map functions
Different languages have different syntax for getting substrings and pushing element to array. Gutt provides solid common functions for working with strings, numbers and maps.
All this functions is just a declaration. In real life stringifiers and platforms may return different values. I hope there is nothing critical, but i have to warning you.
Especially it is sensible for such kind of structure as maps. Especially if you mix ordinary arrays with objects or associative arrays. Please, don't mix them.
If you use once key for declaration and your map is going to be object or associative array. The name depends of platform.
The syntax of maps is simple. It's a chain of values wrapped with square brackets and separated with comma. You may set key for value. It could be a string or a variable. There are some examples of defenition:
<variable name={$array} value={1, 2, 3, 4} /><variable name={$array} value={'a', 'b', 'c', 'd'} /><variable name={$array} value={1, 'b', 3, 'd'} />
Access to elements cound be in two ways. If name of key contains digitss or letters of latin alphabet then you may use dot. Another way you wrap key name in square brackets. If key name places in variable you write variable name wrapped in square brackets as well.
{$array.a}{$simple-map['complicated key']}{$another-map[$key-name]}
There are also two ways to create range arrays. It's an array of numbers. From first number to second. It could be opened or closed. Look at examples:
<variable name={$array} value={0..5} /><!-- 0, 1, 2, 3, 4, 5 --><variable name={$array} value={0...5} /><!-- 0, 1, 2, 3, 4 --><variable name={$array} value={9..5} /><!-- 9, 8, 7, 6, 5 --><variable name={$array} value={9...5} /><!-- 9, 8, 7, 6 --><variable name={$end} value={10} /><variable name={$array} value={6..$end} /><!-- 6, 7, 8, 9, 10 --><variable name={$array} value={$end...5} /><!-- 10, 9, 8, 7, 6 -->
arr_join#
arr_join($map, $joiner)Returns string of joined map's items
Parameters
$mapthe map to use.
$joinerthe string to join with.
Examples
{arr_join([1, 2, 3, 4, 5], ', ')}<!-- 1, 2, 3, 4, 5 -->
arr_keys#
arr_keys($map)Returns map of keys
Parameters
$mapthe map to use.
Examples
{arr_join(arr_keys([1, 2, 3, 'a': 5, 'b', [3]]), ', ')} /><!-- 0, 1, 2, 3, 4, a -->
arr_values#
arr_values($map)Returns map of values.
Parameters
$mapthe map to use.
Examples
{arr_join(arr_values([1: 'a', 2: 'b', 3: 'c', 4: 'd']), ', ')} /><!-- a, b, c, d -->
arr_contain#
arr_contain($map, $element)
Returns true if $map contains $element
Parameters
$mapthe map to use.
$elementthe searching element.
Examples
<if test={arr_contain([1, 2, 3, 4, 5], 3)}/>contains</if><!-- contains -->
arr_len#
arr_len($map)Returns array length.
Parameters
$mapthe map to use.
Examples
{arr_len([1, 2, 3, 4, 5])}<!-- 5 -->
arr_push#
arr_push($map, $element)
This doesn't return anything. It mutates origin one.
This function puts $lement as last element to $map.
Parameters
$mapthe map to use.
$elementthe element to push.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_push($arr, 6)}{arr_join($arr, ', ')}<!-- 1, 2, 3, 4, 5, 6 -->
arr_unshift#
arr_unshift($map, $element)
This doesn't return anything. It mutates origin one.
This function puts $lement as first element to $map.
Parameters
$mapthe map to use.
$elementthe element to push.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_unshift($arr, 0)}{arr_join($arr, ', ')}<!-- 0, 1, 2, 3, 4, 5 -->
arr_pop#
arr_pop($map)
Returns last element from $map. This function mutates origin
$map — last element will
be removed form origin $map.
Parameters
$mapthe map to use.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_pop($arr)}{arr_join($arr, ', ')}<!-- 5 --><!-- 1, 2, 3, 4 -->
arr_shift#
arr_shift($map)
Returns first element from $map. This function mutates origin
$map — first element will be removed form origin $map.
Parameters
$mapthe map to use.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_shift($arr)}{arr_join($arr, ', ')}<!-- 1 --><!-- 2, 3, 4, 5 -->
arr_rand#
arr_rand($map, $element)
Returns random element from $map. This function doesn't mutates origin
$map.
Parameters
$mapthe map to use.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_rand($arr)}<!-- 4 -->
arr_slice#
arr_slice($map, $start[, $length])
Returns submap from $start index with $length. Without
$length full rest will be returned.
Function doesn't mutate origin $map. Be careful with this constructions.
Different platforms works very different.
Parameters
$mapthe map to use.
$startthe start index.
$lengththe length.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_join(arr_slice($arr, 1, 2), ', ')}{arr_join($arr, ', ')}<!-- 2, 3 --><!-- 1, 2, 3, 4, 5 -->
arr_splice#
arr_splice($map, $start[, $length])
Returns submap from $start index with $length. Without
$length full rest will be returned. Function mutates origin $map.
This elements will be removed from origin $map. Be careful with this
constructions. Different platforms works very different.
Parameters
$mapthe map to use.
$startthe start index.
$lengththe length.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_join(arr_splice($arr, 1, 2), ', ')}{arr_join($arr, ', ')}<!-- 2, 3 --><!-- 1, 4, 5 -->
arr_splice#
arr_splice($map, $start[, $length])
Returns submap from $start index with $length. Without
$length full rest will be returned. Function mutates origin $map.
This elements will be removed from origin $map. Be careful with this
constructions. Different platforms works very different.
Parameters
$mapthe map to use.
$startthe start index.
$lengththe length.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_join(arr_splice($arr, 1, 2), ', ')}{arr_join($arr, ', ')}<!-- 2, 3 --><!-- 1, 4, 5 -->
arr_pad#
arr_pad($map, $length, $element)
Returns padded $map at the end or begin of $map for
$length with $element. If $length positive it is
going to be end. If you user negative then it is going to be begin. Function doesn't
mutate origin $map.
Parameters
$mapthe map to use.
$lengththe length.
$elementthe element to pad with.
Examples
<variable name={$arr} value={[1, 2, 3, 4, 5]} />{arr_join(arr_pad($arr, 7, 0), ', ')}{arr_join(arr_pad($arr, -7, 0), ', ')}<!-- 1, 2, 3, 4, 5, 0, 0 --><!-- 0, 0, 1, 2, 3, 4, 5 -->
arr_sort#
arr_sort($map)
Returns sorted $map.
Parameters
$mapthe map to use.
Examples
<variable name={$arr} value={[2, 5, 4, 1, 3]} />{arr_join(arr_sort($arr), ', ')}<!-- 1, 2, 3, 4, 5 -->
arr_reverse#
arr_reverse($map)
Returns reversed $map.
Parameters
$mapthe map to use.
Examples
<variable name={$arr} value={[2, 5, 4, 1, 3]} />{arr_join(arr_reverse($arr), ', ')}<!-- 3, 1, 4, 5, 2 -->
arr_sort_reverse#
arr_sort_reverse($map)
Returns reversed $map.
Parameters
$mapthe map to use.
Examples
<variable name={$arr} value={[2, 5, 4, 1, 3]} />{arr_join(arr_sort_reverse($arr), ', ')}<!-- 5, 4, 3, 2, 1 -->
arr_unique#
arr_unique($map)
Returns map with unique elements from $map. Be careful with difficult
structured elements.
Parameters
$mapthe map to use.
Examples
<variable name={$arr} value={[2, 1, 3, 1, 5, 4, 3, 3, 5]} />{arr_join(arr_unique($arr), ', ')}<!-- 2, 1, 3, 5, 4 -->
arr_key#
arr_key($map, $element)
Returns first finded key from $map with searching $element
Parameters
$mapthe map to use.
$elementelement for search
Examples
<variable name={$arr} value={[2, 1, 3, 1, 5, 4, 3, 3, 5]} />{arr_key($arr, 3)}<!-- 2 -->