Referencia › Referencia de funciones › Functions

Functions.collections.cleanArray

pública

Llamar como

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

Regístrala como dependencia con el nombre Functions.collections.cleanArray (aceptar la sugerencia de autocompletado lo hace por ti) y luego llámala con ese nombre.

Qué hace

Elimina entradas en el sitio y, por defecto, conserva solo las claves que aparecen entre los valores de except. Con invert true, elimina las claves indicadas y conserva las no indicadas. Sin lista de excepciones, por defecto elimina todas las entradas e invert true las conserva todas. Una entrada nil no hace nada.

Argumentos

NombreTipoQué hace
arraytable | nilTabla que se modificará, o nil para no hacer nada.
excepttable | nilColección opcional de valores de clave que seleccionan entradas; sus propias claves se ignoran.
invertboolean | nilTrue elimina las entradas indicadas; false o nil conservan solo las entradas indicadas.

Retornos

1...Sin valores de retorno. La tabla proporcionada se modifica en el sitio.

Ediciones

Las funciones auxiliares integradas se registran en todas las ediciones. Lo que cambia es la API del juego que leen; donde falta alguna, la función auxiliar recurre a una alternativa o devuelve nil con un motivo.

No lee directamente ninguna API del juego.

Ejemplo

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

Código fuente

Functions/collections.lua, línea 109. Solo lectura en el juego; Duplicar crea una copia editable.

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

Volver a Referencia de funciones