Référence › Référence des fonctions › Functions

Functions.collections.cleanArray

publique

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

NomTypeCe qu'elle fait
arraytable | nilTable à modifier, ou nil pour ne rien faire.
excepttable | nilCollection facultative dont les valeurs sont les clés à sélectionner ; ses propres clés sont ignorées.
invertboolean | niltrue 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 == true

Source

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

Retour à Référence des fonctions