Referência › Referência de funções › Functions

Functions.collections.cleanArray

pública

Chame como

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

Registre-a como uma dependência chamada Functions.collections.cleanArray (aceitar o preenchimento automático faz isso) e depois chame-a por esse nome.

O que faz

Remove entradas no próprio lugar, preservando por padrão apenas as chaves listadas entre os valores de except. Com invert true, remove as chaves listadas e mantém as não listadas. Sem lista de exceções, o padrão remove todas as entradas e invert true mantém todas. Uma entrada nil não faz nada.

Argumentos

NomeTipoO que faz
arraytable | nilTabela a modificar, ou nil para não fazer nada.
excepttable | nilColeção opcional de valores de chave que selecionam entradas; as próprias chaves dela são ignoradas.
invertboolean | nilTrue remove as entradas listadas; false ou nil preservam apenas as entradas listadas.

Retornos

1...Sem valores de retorno. A tabela fornecida é modificada no próprio lugar.

Edições

As funções auxiliares integradas são registradas em todas as edições. O que muda é a API do jogo que elas leem; quando uma está ausente, a função auxiliar recorre a uma alternativa ou retorna nil com um motivo.

Não lê nenhuma API do jogo diretamente.

Exemplo

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-fonte

Functions/collections.lua, linha 109. Somente leitura no jogo; Duplicar cria uma cópia editável.

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

Voltar para Referência de funções