Änderungen an Arrays vornehmen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Der Inhalt eines Arrays muss oft geändert werden, beispielsweise wenn ein Element aus dem Inventar eines Spielers entfernt werden muss. Luau bietet eingebaute Funktionen für die Verwendung mit Tabellen, um dies zu erleichtern.

Dieser Artikel beschreibt vorgefertigte Funktionen für Tabellen wie Hinzufügen und Entfernen und erklärt, wie man nach einem Wert sucht.

Um diese Fähigkeiten anzuwenden, erstellen Sie ein Skript, das hilft, das Inventar eines Spielers zu verwalten.

Werte zu Arrays hinzufügen

Um einen neuen Wert zu einem Array hinzuzufügen, verwenden Sie table.insert(array, valueToInsert). Der zweite Parameter kann jeder Wert sein, wie ein String, eine Zahl oder ein ganzes Objekt, wie Player oder IntValue.

Um zu üben, erstellen Sie ein Skript, das die Gegenstände eines Spielers in einer Tabelle speichert und dann hinzufügt. Da dieses Beispiel nur ein Skript ist, kann es mit jeder Datei oder jedem Projekt verwendet werden. Der Code wird im Ausgabefenster getestet.

  1. Erstellen Sie ein leeres Array mit dem Namen playerItems.

    playerItems = {}
  2. Fügen Sie Inventarartikel zum Array hinzu, indem Sie table.insert() eingeben. Geben Sie in den Klammern playerItems, die Tabelle, zu der hinzugefügt werden soll, gefolgt von einem String für jeden Artikel ein. Fügen Sie mindestens drei Werte hinzu.

    playerItems = {}
    table.insert(playerItems, "Potion")
    table.insert(playerItems, "Bread")
    table.insert(playerItems, "Sleeping Bag")
    print(playerItems)
  3. Führen Sie das Projekt aus. Erweitern Sie in der Ausgabe die drei Punkte ..., um die gedruckte Tabelle zu sehen.

Werte aus Arrays entfernen

Um einen Wert zu entfernen, beispielsweise wenn ein Spieler einen Gegenstand verwendet oder jemand in einer Liste aktiver Spieler ein Spiel verlässt, verwenden Sie table.remove(). Je nach den angegebenen Parametern kann die Funktion entweder den letzten Wert einer Tabelle oder einen bestimmten Index entfernen.

Den letzten Wert entfernen

Manchmal muss ein Skript ein bestimmtes Element entfernen. Zum Beispiel das erste Element im Inventar eines Spielers zu entfernen oder den ersten Spieler in einer Liste auszuwählen. Um den letzten Wert in einem Array zu entfernen, verwenden Sie table.remove(arrayName). In diesem Anwendungsfall ist der einzige benötigte Parameter die Tabelle selbst.

  1. Verwenden Sie das Array von Elementen aus dem vorherigen Beispiel. Um dann den letzten Wert aus der Tabelle zu entfernen, in diesem Fall "Sleeping Bag", geben Sie table.remove(playerItems) ein.

    playerItems = {}
    table.insert(playerItems, "Potion")
    table.insert(playerItems, "Bread")
    table.insert(playerItems, "Sleeping bag")
    table.remove(playerItems)
    print(playerItems)
  2. Führen Sie das Projekt aus. Im Ausgabefenster sollte der letzte Wert, "Sleeping Bag", nicht gedruckt werden.

Nach Index entfernen

Um einen Wert an einem bestimmten Punkt im Array zu entfernen, geben Sie im zweiten Parameter den Index an, den Sie entfernen möchten, z. B. table.remove(arrayName, 1).

  1. Verwenden Sie dasselbe Array, geben Sie table.remove() ein. Geben Sie in den Parametern den Namen der Tabelle und 1, den zu entfernenden Wert, ein.

    playerItems = {}
    table.insert(playerItems, "Potion")
    table.insert(playerItems, "Bread")
    table.insert(playerItems, "Sleeping bag")
    table.remove(playerItems, 1)
  2. Führen Sie das Projekt aus. Überprüfen Sie, ob der erste Wert, "Potion", entfernt wurde.

Nach Werten in einem Array suchen

Um spezifische Werte in Arrays zu finden, wie den Namen eines gewinnenden Spielers, verwenden Sie die Funktion table.find(). Alternativ können Sie Ihre eigene Suchfunktion mit for-Schleifen und if-Anweisungen programmieren.

Einen einzelnen Wert finden und zurückgeben

Um einen Wert in einem Array zu finden, erstellen Sie eine Funktion mit dem Namen findValue(), die durch ein Array geht und beim ersten Mal stoppt, wenn sie einen übereinstimmenden Wert findet.

Sobald der Wert gefunden wurde, verwendet die Funktion das Schlüsselwort return, um den Index dieses Wertes zurückzugeben. Mit einem Index können Sie ihn aus dem Array entfernen.

  1. Kopieren Sie das Array mit dem Namen playerItems unten.

    local playerItems = {
    "Potion",
    "Bread",
    "Bread",
    "Sleeping Bag"
    }
  2. Programmieren Sie eine neue Funktion mit dem Namen findValue() mit zwei Parametern:

    • whichArray - das Array, das durchsucht werden soll.

    • itemName - der spezifische String, nach dem gesucht werden soll.

      local function findValue(whichArray, itemName)
      end
  3. Verwenden Sie in findValue() eine for-Schleife, um zu überprüfen, ob ein Wert im Array mit itemName übereinstimmt. Wenn der Wert übereinstimmt, verwenden Sie das Schlüsselwort return, um den gefundenen Wert in currentIndex zurückzugeben.

    local function findValue(whichArray, itemName)
    for currentIndex = 1, #whichArray do
    if whichArray[currentIndex] == itemName then
    return currentIndex
    end
    end
    end
  4. Testen Sie die Suchfunktion, indem Sie eine Variable mit dem Namen valueFound erstellen und findValue() aufrufen. Übergeben Sie das Array, das durchsucht werden soll, und welchen Wert es suchen soll. Führen Sie den Code aus, um zu bestätigen, dass die erwartete Ausgabe Index 2 ist.

    local function findValue(whichArray, itemName)
    for currentIndex = 1, #whichArray do
    if whichArray[currentIndex] == itemName then
    --Sendet den Wert von currentIndex zurück
    return currentIndex
    end
    end
    end
    local valueFound = findValue(playerItems, "Bread")
    print("Der Wert befindet sich an Index " .. valueFound)

Einen Wert entfernen

Wenn ein Wert mit der Suchfunktion gefunden wurde, kann er entfernt werden. Überprüfen Sie mit einer if-Anweisung, ob ein Wert gefunden wurde.

  1. Überprüfen Sie, ob sich ein Wert in valueFound befindet; wenn ja, entfernen Sie den Wert mit table.remove().

    if valueFound then
    table.remove(playerItems, valueFound)
    end
  2. Drucken Sie das Array mit dem folgenden Code aus.

    for index = 1, #playerItems do
    local itemString = playerItems[index]
    print("Index " .. index .. ": " .. itemString)
    end
  3. Testen Sie das Spiel und überprüfen Sie, ob der erste "Bread"-Wert aus dem Array entfernt wurde. Versuchen Sie, andere Werte zu entfernen, indem Sie den zweiten Parameter in findValue() ändern.

    Beachten Sie, dass, da diese Funktion einmal aufgerufen wurde, nur die erste Instanz von "Bread" entfernt wurde. Der folgende Abschnitt behandelt, wie man alle Instanzen finden und entfernen kann.

Alle Instanzen eines bestimmten Wertes finden und entfernen

Während der vorherige Code nur die erste Instanz eines gefundenen Wertes entfernen konnte, wird dieser Code-Schnipsel alle Vorkommen aus einem Array finden und entfernen. Zum Beispiel, wenn ein Spieler alle seine Brote in einem In-Game-Laden verkaufen möchte.

  1. Verwenden Sie ein Array mit dem Namen playerItems, das mindestens vier Werte und eine Reihe von Duplikaten enthält.

    local playerItems = {
    "Potion",
    "Bread",
    "Bread",
    "Sleeping Bag"
    }
  2. Um durch das Array zu gehen, erstellen Sie eine for-Schleife, die rückwärts durch playerItems geht, beginnend bei #playerItems, endend bei 1 und um -1 inkrementierend.

    for index = #playerItems, 1, -1 do
    end
  3. Verwenden Sie in der Schleife eine if-Anweisung, um zu überprüfen, ob der Wert in playerItems[index] gleich "Bread" ist, und entfernen Sie in diesem Fall das Element.

    for index = #playerItems, 1, -1 do
    if playerItems[index] == "Bread" then
    table.remove(playerItems, index)
    end
    end
  4. Verwenden Sie den folgenden Code, um eine zweite for-Schleife hinzuzufügen, die das Array druckt.

    for index = 1, #playerItems do
    local itemString = playerItems[index]
    print("Index " .. index .. ": " .. itemString)
    end
  5. Führen Sie das Skript aus und überprüfen Sie, ob alle Werte mit dem Namen "Bread" entfernt wurden.

Zusammenfassung

Werte können zu einem Array hinzugefügt oder daraus entfernt werden, aber seien Sie vorsichtig, dass sich die Indizes dabei verschieben. Verwenden Sie Schleifen, um durch eine Tabelle zu iterieren, um alle Instanzen eines Wertes zu entfernen oder nur die erste gefundene Instanz.

Das Schlüsselwort return kann verwendet werden, um eine Schleife zu stoppen und Informationen dorthin zurückzusenden, wo sie benötigt werden.

Eine fertige Version des Skripts kann unten eingesehen werden.

Das folgende Projekt enthält alle Skripte in diesem Tutorial. Laden Sie es hier herunter.

Beachten Sie, dass sich alle Skripte in ServerScriptService befinden und deaktiviert sind. Um ein Skript zu verwenden, deaktivieren Sie im Eigenschaftenfenster das Feld Deaktiviert und führen Sie Studio aus.

©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.