Tables
A table is a Lua data type that can store multiple values including numbers, booleans, strings, functions, and more. Tables are constructed with curly braces ({}) as shown here:
-- Construct an empty table assigned to variable "t"
local t = {}
print(t)Once constructed, a table can behave as either an array or a dictionary as illustrated in the following sections.
Arrays
An array is a simple list of ordered values, useful for storing collections of data such as a group of players with special permissions.
Creating Arrays
To create an array using a Lua table, simply store the values sequentially, separated by commas. An array value can be any non-nil type (boolean, number, string, function, userdata, or even another table).
-- Construct an array with three items
local testArray = {"A string", 3.14159, workspace.Part}Reading From Arrays
To read from an array, add a pair of brackets after its reference and specify the index number of the element inside ([pos]):
Unlike some languages, Lua uses 1-based indexing for arrays, meaning that the first item in the array is [1], not [0].
-- Construct an array with three items
local testArray = {"A string", 3.14159, workspace.Part}
print(testArray[1])
print(testArray[2])
print(testArray[3])lWriting Into Arrays
The value of an array index can be defined or rewritten by indicating the index number in brackets ([pos]) followed by = and then the value:
local testArray = {"A string", 3.14159, workspace.Part}
testArray[2] = 12345
testArray[4] = "New string"
print(testArray[2])
print(testArray[4])Iterating Over Arrays
Arrays can be iterated over (looped through) in two ways:
Use the built-in
ipairs()function in aforloop.Get the array’s length using the
#operator and loop from 1 to that length value.
local testArray = {"A string", 3.14159, workspace.Part, "New string"}
-- Loop using "ipairs()"
for index, value in ipairs(testArray) do
print(index, value)
end
-- Iterate using the array length operator (#)
for index = 1, #testArray do
print(index, testArray[index])
endInserting Items
An item can be inserted at the end of an array through either of these methods:
Pass the array reference and the item value to Lua’s
table.insert()function.Add the new item to the array using the
t[#t+1]syntax.
local testArray = {"A string", 3.14159}
table.insert(testArray, "New string")
testArray[#testArray+1] = "Another new string"
print(testArray[3])
print(testArray[4])Last updated
Was this helpful?