lua - 从表中随机化值然后在 Lua 中将其删除

标签 lua lua-table

我有一个包含 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))

我只想能够在表中的一个值之间进行随机。当我随机分配该 vlue 时,我希望将其删除,这样我就剩下另外三个可供随机选择的值。

我让你困惑了吗? :)

最佳答案

table.remove(ConsoleTable, key) 确实会从表中删除一个值,从而将其大小减少 1。因此,下次调用 math.random(1,( #ConsoleTable)),其范围也会小一。说实话,看起来你做得不错,但我不确定问题出在哪里。

编辑:这段话怎么样?

table.remove(ConsoleTable, math.random(1, #ConsoleTable))

我认为这将从表中随机删除一个“控制台”。也许你可以尝试一下,如果这不是你想要的,请详细解释哪里出了问题,我们可以尝试更多的事情。

关于lua - 从表中随机化值然后在 Lua 中将其删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4354544/

相关文章:

Lua - 从嵌套表中获取值

Lua global __newindex 只调用一次

lua - Lua 中列出对象字段

lua string.gsub ('The farmer said "这个世界真棒 !",' "','\"' )

javascript - 我应该支持哪种游戏内脚本语言?

java - LuaJava:使用 LuaJava 将整个 Lua-Table 导入类 Java 数组

Lua - 删除非空目录

ios - iOS 设备上的 Lua 堆栈只有 ?,没有类名或行号

c++ - float 的跨平台/编译器一致 sprintf

lua - 已经放入},但错误仍然表明}是预期的?