Skip to content

BBScript: BBScript 2: Arrays

Alteras1 edited this page Jun 11, 2024 · 2 revisions

Arrays

Arrays is a common value type for processing multiple items in a list. Arrays in BBScript 2 can be created via a series of elements separated by whitespace and surrounded by square brackets.

[item1 item2 item3]

(= list [foo bar])

They can be of any length and can contain any type inside. They can contain any number of item inside. Arrays can also be nested inside of other arrays.

If a function is passed into the array, BBScript will attempt to process the function during the creation of the array. Arrays are zero indexed.


count

Returns the number of items inside the array.

(count array)

array : The array to be checked. Must resolve to an array.

Return : Returns the number of items in the array


index

Returns the element at the given index of the array. If provided a value, will replace the element at the given index with the value instead and return it.

(index array index value)

array : The array to be accessed. Must resolve to an array.

index : The index of the element to access. Zero-indexed based. Must be less than total length and zero or positive. Must resolve to a number. : 0 is the first element, 1 is the second, 2 is the third, etc.

value optional : If provided, will replace the element at index with the given value.

Return : Returns the value of the element at the given index


contain

Returns true or false based on if the array contains the value given.

(contain array needle)

array : The array to be searched. Must resolve to an array.

needle : The element to search for. Can be any value.

Return : Returns true if the array contains an element matching the needle, otherwise returns false.


find

Returns the index of the first element matching the given needle in the array.

(find array needle)

array : The array to be searched. Must resolve to an array.

needle : The element value to find the index of.

Return : Returns the zero index based position of the first occuring element to match the needle in the array. If it cannot be found, returns -1.


append

Adds the given value to the end of the array.

(append array value)

array : The array to be added to. Must resolve to an array.

value : The value to be added. Can be any value.

Return : Returns the length of the new array.


insert

Inserts a new value into the array at the given index.

(insert array index value)

array : The array to be added to. Must resolve to an array.

index : The zero index based position to add the new value at. Does not replace the existing value.

value : The value to be added as a new element into the array.


pop

Removes the last element in the array and returns its value.

(pop array)

array : The array to remove the value from. Must resolve to an array.

Return : Returns the value of the element removed.


remove

Removes the element at the index given from the array and returns its value.

(remove array index)

array : The array to remove the value from. Must resolve to an array.

index : The zero index based position of the element to be removed.

Return : Returns the value of the element removed.


slice

Performs a slice of the array and returns the subset of the array at the given start and end index.

(slice array start end)

array : The array to take the subset from. Must resolve to an array.

start : The start index of the first element to include in the subset. Must resolve to a number.

end : The end index of the first element after the start to not be included in the subset. Must resolve to a number.

Return : Returns a subset array containing elements between the start and end index given.

Example: The following code will return [b c d].

(slice [a b c d e] 1 4)

join

Combines an array of strings together to make one single string.

(join array separator)

array : The array of strings to combine. Must resolve to an array of strings.

separator optional : If provided, will insert the separator between each element at join. : Default - empty string ""

Example:

(join [a b c d])

Returns "abcd"

(join [a b c d] "!")

Returns "a!b!c!d"

See also BBScript 2 Strings


each

Performs a given function on each element of an array. This acts like a for-of loop in Javascript.

(each array (function) token)

array : The array of elements to perform the function on.

(function) : The function to apply the logic on a given element. The element can be referenced using the token provided.

token optional : The token to use to reference the element. Must resolve to a string. : Default - by default, uses _

Example:

(= sum 0)
(each [1 2 3] (group
                (print _)
                (= sum (+ sum _))
              ))
(print sum)

Will print:

1
2
3
6

See also group


reverse

Reverses the element order of the array.

(reverse array)

array : The array to be reversed.

Return : Returns the array reversed. The reversal is also done in place.


shuffle

Shuffles the order of the elements in the array.

(shuffle array)

array : The array to be shuffled

Return : Returns a shuffled array.