Таблица представляет собой набор пар ключ / значение или массив. ОК, это не совсем так;таблица может быть и другой, но записи ключ / значение не будут иметь отношения к записям массива. То есть вы можете сделать это:
tbl = {
['a'] = 1,
['b'] = 4,
[1] = {'a', 1},
[2] = {'b', 4},
}
tbl[2]
не будет иметь прямого отношения к tbl['b']
. Вы можете выполнить tbl[2] = <anything>
, и это не повлияет на содержимое tbl['b']
.
Пока таблица не изменится, вы можете взять любую чистую таблицу ключ / значение и построить массивчасть этого, которую вы можете затем отсортировать по своему усмотрению. Вот функция, которая делает это:
local function build_array(tbl)
--We cannot modify `tbl` while iterating through it, so build a temp array.
local arr = {}
for key, value in pairs(tbl) do
arr[#arr + 1] = {key, value}
end
for ix, value in ipairs(arr) do
tbl[ix] = value
end
return tbl
end