Appel
Functions.collections.cleanArray(array, except, invert)
Enregistrez-la comme dépendance nommée Functions.collections.cleanArray (accepter la complétion le fait pour vous), puis appelez-la sous ce nom.
Ce qu'elle fait
Supprime des entrées sur place ; par défaut, seules les clés figurant parmi les valeurs de except sont conservées. Avec invert à true, les clés listées sont supprimées et les autres conservées. Sans liste d'exceptions, le comportement par défaut supprime toutes les entrées et invert à true les conserve toutes. Une entrée nil ne fait rien.
Arguments
| Nom | Type | Ce qu'elle fait |
|---|---|---|
array | table | nil | Table à modifier, ou nil pour ne rien faire. |
except | table | nil | Collection facultative dont les valeurs sont les clés à sélectionner ; ses propres clés sont ignorées. |
invert | boolean | nil | true supprime les entrées listées ; false ou nil ne conserve que les entrées listées. |
Retours
| 1 | ... | Aucune valeur renvoyée. La table fournie est modifiée sur place. |
|---|
Éditions
Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.
Elle ne lit directement aucune API du jeu.
Exemple
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 == trueSource
Functions/collections.lua, ligne 109. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.
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