Справочник › Справочник функций › Functions

Functions.collections.cleanArray

общедоступный

Как вызывать

Functions.collections.cleanArray(array, except, invert)

Запишите его как зависимость с именем Functions.collections.cleanArray (принятие автодополнения делает это само) и вызывайте по этому имени.

Что делает

Удалить записи на месте, по умолчанию оставляя только ключи, перечисленные в значениях except. При invert true перечисленные ключи удаляются, а неперечисленные остаются. Без списка исключений по умолчанию удаляются все записи, а при invert true все сохраняются. При входе nil ничего не происходит.

Аргументы

ИмяТипЧто делает
arraytable | nilИзменяемая таблица или nil, чтобы ничего не делать.
excepttable | nilНеобязательная коллекция значений-ключей, выбирающих записи; её собственные ключи игнорируются.
invertboolean | niltrue удаляет перечисленные записи; false или nil сохраняет только перечисленные.

Возвращает

1...Нет возвращаемых значений. Переданная таблица изменяется на месте.

Издания

Встроенные помощники регистрируются во всех изданиях. Различается игровой API, который они читают; если нужного API нет, помощник использует запасной вариант или возвращает nil с причиной.

Не читает игровой API напрямую.

Пример

local seen = { Moonfire = true, Sunfire = true, Rake = true }
-- invert: remove the listed keys, keep the rest
Functions.collections.cleanArray(seen, { "Rake" }, true)
return seen.Rake == nil and seen.Moonfire == true

Исходный код

Functions/collections.lua, строка 109. В игре только для чтения; «Дублировать» создаёт редактируемую копию.

Functions.collections.cleanArray(array, except, invert)
    if array == nil then
        return
    end
    if invert == nil then
        invert = false
    end

    for k,_ in pairs(array) do
        local skip = invert
        if except ~= nil then
            for _,v2 in pairs(except) do
                if (k == v2) then
                    skip = not invert
                    break
                end
            end
        end
        if not skip then
            array[k] = nil
        end
    end

Назад: Справочник функций