我有一个包含4个值的表。
例如:
2
4
1
3
我使用一个函数来逐步查找表格,让我们通过使用对来说出数字1并获得它在表格中的位置。
然后我使用table.remove从该位置删除1。我现在要做的是压缩表格,使其长度为3个值 2 4 3
我对LUA很新,所以对我很温柔。 :)
我所拥有的就是这个:
CloseRandomConsole = math.random(1,(#ConsoleTable))
If CloseRandomConsole == 1 then
for key, value in pairs(ConsoleTable) do
if value == "1" then
table.remove(ConsoleTable, key)
break
end
end
我知道我哪里出错但我不知道如何解决它。
math.random(1,(#ConsoleTable))
我只希望能够在表格中的一个值之间随机。当我发誓说我想要删除它时,我会留下三个其他值来随机。
我让你感到困惑吗? :)
答案 0 :(得分:2)
你是什么意思?
s = {2,4,1,3} -- the table
for k,v in pairs(s) do
if v==1 then
table.remove(s,k)
end
end
print(#s) -- is now 3
for k,v in pairs(s) do print(v) end -- just the 3 values ...
@Vitae:当你在询问任何事情时,你应该描述你想做什么,而不是你想怎么做 - 尤其是当你不知道自己在做什么时......
也许你想从表中删除一个随机值?然后在随机索引处获取值...
function poprandom( t )
local idx = math.random(1,#t)
local ret = t[idx]
table.remove(t, idx)
return ret
end