如何从table.remove(x)中进行table.insert(x)

时间:2019-05-14 05:54:50

标签: lua

我想通过添加和删除元素来操纵lua表。 我将使用table.remove(x),将(x)存储到一个数组中,然后将其与table.insert(x)一起插入。

a = {}
table.remove(tab, a) -- From tab into a
...
table.insert(tab, a) -- From a into tab

那行不通。

1 个答案:

答案 0 :(得分:2)

仅仅因为那不是他们的工作方式。

请参阅Lua参考手册的table.inserttable.remove。该版本适用于Lua 5.1,如果您使用其他版本,则应该可以轻松找到合适的版本。

您可以像这样在表之间移动元素:

{
  "FormTemplate": "[{\"_reference\":\"ID.ParentId1\",\"MetadataId\":111,\"fieldLabel\":\"ClientLable\"}]",
  "Type": 1,
  "Fields": [
        {
            "MetadataFieldId": 381,
            "DisplayName": "Parent Client",
            "DefaultValue": null,      
        }
    ],
    "Settings": [],
    "DateUpdated": "2017-07-01T08:49:11.433Z"
}

您可能需要验证a = {} table.insert(a, table.remove(tab)) -- From tab into a ... table.insert(tab, table.remove(a)) -- From a into tab 返回的值:

remove

请注意,local foo = table.remove(tab) if type(foo) ~= "nil" then table.insert(a, foo) end 的默认位置是表格的最后一个元素,remove的默认位置位于表格的最后一个元素之后。操纵insertpos的{​​{1}}自变量可以允许您实现不同的行为。

例如,如果您想获得更多类似滚动的行为(您在以前的问题中已经问过的问题,现在已将其删除):

insert