我有一个包含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))
我只希望能够在表格中的一个值之间随机。当我发誓说我想要删除它时,我将留下其他三个随机值。
我让你困惑吗? :)
你什么意思?
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