Table.remove (Lua)

Материал из UoPilot
Версия от 11:24, 28 августа 2019; Tatikoma (обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Описание

table.remove - удаляет из массива элемент в указанной позиции. Оставшиеся элементы будут сдвинуты и изменится размерность массива. Если позиция не указана удаляет последний элемент.

Синтаксис

Привязка к окну: Нет.
Работа со свернутым окном: Да.
Все параметры заключаются в скобки и разделяются запятыми.

table.remove (<array> [, pos])

Где:
<array> - массив, в котором требуется удалить элемент.
[pos,] - из какой позиции удалять. Необязательный параметр, если не указан удаляет последний элемент.

Примеры

--lua
local  arr = {}
arr [1] = "Один"
arr [2] = "Два"
arr [3] = "Три"
arr [4] = "Четыре"
log ("clear") log ("mode compact")
log (unpack(arr))        -- вывод массива в лог

table.remove(arr)        -- удалить последний элемент массива
log (unpack(arr))        -- вывод массива в лог
--lua
-- удаление указанного элемента массива
local arr = {[1] = "Один", [2] = "Два", [3] = "Три", [4] = "Четыре"}  -- индексы можно не указывать
-- arr = {"Один", "Два", "Три", "Четыре"}  -- это тоже самое

log ("clear") log ("mode compact")   -- очистить лог, компактный режим
log (table.concat(arr, "   "))       -- вывод массива в лог

table.remove(arr, 2)                 -- удалить 2й элемент массива
log (table.concat(arr, "   "))
--lua
local arr = {}
log ("clear") log ("mode compact")

table.insert(arr, {1, 2, 3})
table.insert(arr, {4, 5, 6})
table.insert(arr, {7, 8, 9})
-- вывод массива в лог
for i = 1, #arr do
    log (table.concat(arr[i], "   "))
end
log ()

table.remove (arr[2], 1)   -- удалить элемент arr[2][1]
 -- вывод массива в лог
for i = 1, #arr do
    log (table.concat(arr[i], "   "))
end
--lua
local arr = {}
log ("clear") log ("mode compact")

table.insert(arr, {1, 2, 3})
table.insert(arr, {4, 5, 6})
table.insert(arr, {7, 8, 9})
-- вывод массива в лог
for i = 1, #arr do
    log (table.concat(arr[i], "   "))
end
log ()

table.remove (arr, 2)    -- удалить 2-й элемент массива 'arr', при этом оставшиеся будут сдвинуты и размер массива изменится

 -- вывод массива в лог
for i = 1, #arr do
    log (table.concat(arr[i], "   "))
end
--lua
local arr = {}
log ("clear") log ("mode compact")

table.insert(arr, {1, 2, 3})
table.insert(arr, {4, 5, 6})
table.insert(arr, {7, 8, 9})
-- вывод массива в лог
for i = 1, #arr do
    log (table.concat(arr[i], "   "))
end
log ()

-- удалить все элементы, которые содержит arr[2], в отличие от примера выше, размер массива не изменится
-- т. к. удаляется не сам элемент массива arr[2], а то что он содержит
for i = 1, #arr[2] do
   table.remove (arr[2])
end

 -- вывод массива в лог
for i = 1, #arr do
    log (table.concat(arr[i], "   "))
end
--lua
local arr = {}
log ("clear") log ("mode compact")

table.insert(arr, {1, 2, 3})
table.insert(arr, {4, 5, 6})
table.insert(arr, {7, 8, 9})
-- вывод массива в лог
for i = 1, #arr do
    log (table.concat(arr[i], "   "))
end
log ()

-- удалить из каждого элемента массива 'arr' 2й элемент
for i = 1, #arr do
   table.remove (arr[i], 2)
end

 -- вывод массива в лог
for i = 1, #arr do
    log (table.concat(arr[i], "   "))
end

Смотрите также

table.insert (Lua)
table.concat (Lua)
table.sort (Lua)
table.maxn (Lua)
unpack (Lua)