Module utils.table
Searches a table to remove a specific element without an index
fast_remove (tbl, index) |
Removes an item from an array in O(1) time. |
add_all (t1, t2) |
Adds the contents of table t2 to table t1 |
index_of (t, e) |
Checks if a table contains an element |
index_of_in_array (t, e) |
Checks if the arrayed portion of a table contains an element |
contains (t, e) |
Checks if a table contains an element |
array_contains (t, e) |
Checks if the arrayed portion of a table contains an element |
set (t, index, element) |
Adds an element into a specific index position while shuffling the rest down |
get_random_dictionary_entry (t, key) |
Chooses a random entry from a table
because this uses math.random, it cannot be used outside of events |
get_random_weighted (weight_table, item_index, weight_index) |
Chooses a random entry from a weighted table
because this uses math.random, it cannot be used outside of events |
shuffle_table (t) |
Creates a fisher-yates shuffle of a sequential number-indexed table
because this uses math.random, it cannot be used outside of events if no rng is supplied
from: http://www.sdknews.com/cross-platform/corona/tutorial-how-to-shuffle-table-items |
clear_table (t, array) |
Clears all existing entries in a table |
inspect |
Similar to serpent.block, returns a string with a pretty representation of a table. |
size |
Takes a table and returns the number of entries in the table. |
deep_copy |
Creates a deepcopy of a table. |
merge |
Merges multiple tables. |
equals |
Determines if two tables are structurally equal. |
Functions
-
fast_remove (tbl, index)
-
Removes an item from an array in O(1) time.
The catch is that fast_remove doesn't guarantee to maintain the order of items in the array.
Parameters:
- tbl
arrayed table
- index
Must be >= 0. The case where index > #tbl is handled.
-
add_all (t1, t2)
-
Adds the contents of table t2 to table t1
Parameters:
- t1
to insert into
- t2
to insert from
-
index_of (t, e)
-
Checks if a table contains an element
Parameters:
- t
- e
table element
-
index_of_in_array (t, e)
-
Checks if the arrayed portion of a table contains an element
Parameters:
- t
- e
table element
-
contains (t, e)
-
Checks if a table contains an element
Parameters:
- t
- e
table element
-
array_contains (t, e)
-
Checks if the arrayed portion of a table contains an element
Parameters:
- t
- e
table element
-
set (t, index, element)
-
Adds an element into a specific index position while shuffling the rest down
Parameters:
- t
to add into
- index
the position in the table to add to
- element
to add to the table
-
get_random_dictionary_entry (t, key)
-
Chooses a random entry from a table
because this uses math.random, it cannot be used outside of events
Parameters:
- t
- key
to indicate whether to return the key or value
Returns:
a random element of table t
-
get_random_weighted (weight_table, item_index, weight_index)
-
Chooses a random entry from a weighted table
because this uses math.random, it cannot be used outside of events
Parameters:
- weight_table
of tables with items and their weights
- item_index
of the index of items, defaults to 1
- weight_index
of the index of the weights, defaults to 2
Returns:
table element
See also:
-
shuffle_table (t)
-
Creates a fisher-yates shuffle of a sequential number-indexed table
because this uses math.random, it cannot be used outside of events if no rng is supplied
from: http://www.sdknews.com/cross-platform/corona/tutorial-how-to-shuffle-table-items
Parameters:
- t
to shuffle
-
clear_table (t, array)
-
Clears all existing entries in a table
Parameters:
- t
to clear
- array
to indicate whether the table is an array or not
Fields
-
inspect
-
Similar to serpent.block, returns a string with a pretty representation of a table.
Notice: This method is not appropriate for saving/restoring tables. It is meant to be used by the programmer mainly while debugging a program.
depth sets the maximum depth that will be printed out. When the max depth is reached, inspect will stop parsing tables and just return {...}
process is a function which allow altering the passed object before transforming it into a string.
A typical way to use it would be to remove certain values so that they don't appear at all.
return the prettied table
- table
the table to serialize
- options
options are depth, newline, indent, process
-
size
-
Takes a table and returns the number of entries in the table. (Slower than #table, faster than iterating via pairs)
-
deep_copy
-
Creates a deepcopy of a table. Metatables and LuaObjects inside the table are shallow copies.
Shallow copies meaning it copies the reference to the object instead of the object itself.
- object
the object to copy
-
merge
-
Merges multiple tables. Tables later in the list will overwrite entries from tables earlier in the list.
Ex. merge({{1, 2, 3}, {[2] = 0}, {[3] = 0}}) will return {1, 0, 0}
- tables
takes a table of tables to merge
-
equals
-
Determines if two tables are structurally equal.
Notice: tables that are LuaObjects or contain LuaObjects won't be compared correctly, use == operator for LuaObjects
- tbl1
- tbl2
generated by LDoc 1.4.3
Last updated 2019-05-29 22:30:49