Referenz › Funktionsreferenz › Functions

Functions.collections.cleanArray

öffentlich

Aufruf als

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

Erfassen Sie sie als Abhängigkeit mit dem Namen Functions.collections.cleanArray (das Übernehmen der Vervollständigung erledigt das) und rufen Sie sie dann unter diesem Namen auf.

Was sie bewirkt

Einträge direkt entfernen; standardmäßig bleiben nur Schlüssel erhalten, die unter den except-Werten aufgeführt sind. Mit invert true werden aufgeführte Schlüssel entfernt und nicht aufgeführte behalten. Ohne Ausnahmeliste entfernt der Standard jeden Eintrag, und invert true behält jeden Eintrag. Eingabe nil bewirkt nichts.

Argumente

NameTypWas sie bewirkt
arraytable | nilZu ändernde Tabelle oder nil, um nichts zu tun.
excepttable | nilOptionale Sammlung von Schlüsselwerten zur Auswahl von Einträgen; ihre eigenen Schlüssel werden ignoriert.
invertboolean | nilTrue entfernt aufgeführte Einträge; false oder nil behält nur aufgeführte Einträge.

Rückgabewerte

1...Keine Rückgabewerte. Die übergebene Tabelle wird direkt verändert.

Editionen

Integrierte Hilfsfunktionen werden auf jeder Edition registriert. Unterschiedlich ist die Spiel-API, die sie lesen; fehlt eine, weicht die Hilfsfunktion aus oder gibt nil mit einem Grund zurück.

Sie liest keine Spiel-API direkt.

Beispiel

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

Quelle

Functions/collections.lua, Zeile 109. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.

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

Zurück zu Funktionsreferenz