Таблица Lua. Когда нижний индекс удаляется, все более высокие индексы перемещаются вниз на 1 место, чтобы заполнить место

Использование Lua используется 5.1

Я пытаюсь получить таблицу словаря и сохранить ее в таблице, где у меня есть индекс ключа и значение, являющееся данными, например:

tParams = {
    {1st table data...}  -- this one is key index 1
    {2nd table data...}  -- 2nd index
    ...
}

Я использую этот код для его хранения:

tParams[index] = i     --i being a dictionary table

Я могу добавить код в правильный индекс, и таблица выводится, если вызывается, так что все в порядке

1   table: 0xa4a2fc0
2   table: 0x9f7c4c0

Теперь проблема в том, что если я удалю, например, данные первого индекса, я НЕ хочу, чтобы данные второго индекса перемещались в 1-ю позицию только потому, что они пусты, они просто занимают место и становятся индексом 1... как я могу избежать этого ?

Или, если у вас есть другое решение в целом, я хочу сохранить данные таблицы словаря, которые я получаю, и, если они вызваны, иметь возможность получать данные и работать с ними, и если они мне больше не нужны, чтобы удалить их .

В зависимости от того, сколько экземпляров создано, может быть много словарей, поэтому я не могу просто предварительно их создать. В основном они будут динамическими ... и каждый раз, когда у них есть определенный идентификатор, они приходят с ним, поэтому 2 словаря не будут иметь одинаковый идентификатор.

Если словарь удален, другие словари не должны перемещаться и оставаться в одном и том же индексе/идентификаторе, чтобы их можно было вызвать и получить правильные данные.

Я надеюсь, что я был понятен, также, пожалуйста, не предлагайте никаких дополнительных модулей.

Спасибо!

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
0
37
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не предоставляете весь соответствующий код, но основной способ удалить элемент из таблицы — это tParams[index] = nil. Это не должно вызывать проблему, которую вы описываете.

Звучит так, как будто вы используете table.remove. Эта функция используется для поддержания правильной последовательности, так что # оператор и некоторые стандартные библиотечные функции могут иметь для нее значение.

Идеально, именно то, что мне было нужно! Я действительно использовал table.remove, добавление нуля помогло! :D Спасибо!!!

dinolink 28.03.2022 10:45

Другие вопросы по теме