我想通过添加和删除元素来操纵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
那行不通。
答案 0 :(得分:2)
仅仅因为那不是他们的工作方式。
请参阅Lua参考手册的table.insert
和table.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
的默认位置位于表格的最后一个元素之后。操纵insert
或pos
的{{1}}自变量可以允许您实现不同的行为。
例如,如果您想获得更多类似滚动的行为(您在以前的问题中已经问过的问题,现在已将其删除):
insert