【发布时间】:2015-11-14 20:09:28
【问题描述】:
我正在尝试创建一个函数,将连续数量的元素“拖动”到数组中的新位置,并限制为数组的当前大小。其他项目应围绕“拖动”项目摆动。
例如,如果我的数组有 7 个元素,我想拖动中间三个...
1, 2, 3, 4, 5, 6, 7 <-- keys
a, b, C, D, E, f, g <-- values
大写字符是我想要“拖动”的字符。如果我拖动到数组的开头(拖动到 1),数组将如下所示:
1, 2, 3, 4, 5, 6, 7 <-- keys
C, D, E, a, b, f, g <-- values
如果我拖动到位置 5(或更高 - 不能被拖动到当前数组大小之外),数组将如下所示:
1, 2, 3, 4, 5, 6, 7 <-- keys
a, b, f, g, C, D, E <-- values
知道如何以简单的方式使用 Lua 实现这一目标吗?
【问题讨论】:
-
所涉及的表有多大?拖链有多大?我可以想到两种主要的方法来临时做到这一点,但它们扩展到更大的表格时会有所不同。
-
小表和链用于我想做的事情,但如果其他人使用代码,那么可能是带有大链的大表。
-
目前没有时间写出答案,但其中一个想法基本上就是获取您的起始索引并计数
table.unpack(t, 1, start)+table.unpack(t, start + count)+table.unpack(t, start, start+count)(随便@ 987654327@/-1 是必要的,以使其工作。虽然这需要循环工作。另一个重复table.remove/table.insert对。
标签: arrays lua elements lua-table