【发布时间】:2014-04-06 19:09:56
【问题描述】:
我正在尝试一种简单的方法来使表格中的所有元素都上移一个。这是我正在玩的游戏,试图在桌子上的所有目标之间切换!
例如,假设我被三个想要杀死我的 mooks 包围,所以我将它们全部作为目标并将它们添加到一个数组中,如下所示:
{
"mook1",
"mook2",
"mook3",
}
我希望函数做的是将所有索引更改为上一(或我指定的数量),最后一个到开头,所以最终结果是:
{
"mook3",
"mook1",
"mook2",
}
我自己尝试了这样一个简单的函数:
local function nextIndex(tbl, amount)
local t = {}
for k,v in ipairs(tbl) do
if k < #tbl then
t[k+amount] = v
else
t[1] = v
end
end
return t
end
只要将数量设置为 1,它就可以工作。我相信有一种更智能、更有效的方法来做到这一点。有没有人可以试试看?!
【问题讨论】:
-
for i = 1, amount do table.insert(tbl, 1, table.remove(tbl)) end
标签: lua indexing shift lua-table