Lua 从表中删除值后,如何压缩表?
我有一个包含4个值的表 例如:Lua 从表中删除值后,如何压缩表?,lua,compression,lua-table,Lua,Compression,Lua Table,我有一个包含4个值的表 例如: 2 4 1 3 我使用一个函数在表格中单步查找,比如说,通过成对查找数字1,并获得它在表格中的位置 然后我使用table.remove从该位置移除1。我现在想做的是压缩这个表,使它有3个值长 2. 4. 三, 我是LUA的新手,所以对我要温柔。:) 我所拥有的基本上是: CloseRandomConsole = math.random(1,(#ConsoleTable)) If CloseRandomConsole == 1 then for key,
2
4
1
3
我使用一个函数在表格中单步查找,比如说,通过成对查找数字1,并获得它在表格中的位置
然后我使用table.remove从该位置移除1。我现在想做的是压缩这个表,使它有3个值长
2.
4.
三,
我是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))
我只希望能够在表中的一个值之间随机选择。当我把那个vlue随机化后,我希望它被移除,这样我就剩下三个其他的值来随机化
我把你弄糊涂了吗?:) 你是什么意思
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 ...
@维泰:当你问任何事情时,你应该描述你想做什么,而不是你想怎么做——特别是当你不知道自己在做什么的时候
也许您想从表中删除一个随机值?然后在随机索引中获取值
function poprandom( t )
local idx = math.random(1,#t)
local ret = t[idx]
table.remove(t, idx)
return ret
end
我使用math.random从表中获取一个随机值。我可能做错了tho.CloseRandomConsole=math.random(1,(#ConsoleTable)如果问题不再是问题,请选择一个答案。否则它将继续出现在“未回答的问题”上