Llamar como
Functions.collections.cleanArray(array, except, invert)
Regístrala como dependencia con el nombre Functions.collections.cleanArray (al aceptar la sugerencia de autocompletado se hace por ti) y después 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
| Nombre | Tipo | Qué hace |
|---|---|---|
array | table | nil | Tabla que se modificará, o nil para no hacer nada. |
except | table | nil | Colección opcional de valores de clave que seleccionan entradas; sus propias claves se ignoran. |
invert | boolean | nil | True 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 usa 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 == trueCó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