【发布时间】:2020-04-21 11:33:37
【问题描述】:
我是 lua 新手,对编程也很陌生。我正在努力实现以下目标。
我有一个数字表,我可以从中选择一个随机数。
myTable = {}
for i = 1 to 100 do
table.insert(myTable, i)
end
local numberChosen = myTable[math.random(#myTable)]
到目前为止,一切都很好。下次选择一个数字时,我希望从表中删除该数字。我知道 lua 不会删除值,它们会保持为零。所以
table.remove(myTable, numberChosen)
当我尝试再次运行随机函数时不起作用,如果值为 nil,我得到 “'random' 的错误参数 #1(间隔为空)”
我尝试过创建这样的函数:
function cleanTable(t)
local cleanTable = {}
for k, v in ipairs(t)do
if v ~= nil then
table.insert(cleanTable, v)
end
end
return cleanTable
end
myTable = cleanTable(myTable)
但这也不起作用,因为随机函数返回相同的错误。有人可以帮忙吗?
编辑 ---------------------------------- ------------------------------------
我的表包含如下键和值:
local columns = {1,2,3,4,5,6,7,8,9,10,11,12}
local rows = {1,2,3,4,5,6,7,8,9,10,11,12}
local coupledNumbers = {}
for i = 1, #columns do
for a = 1, #rows do
local coupledNumber = i * a
table.insert(coupledNumbers, i*a, coupledNumber)
end
end
如何删除键和值?谢谢
【问题讨论】:
-
local indexChosen = math.random(#myTable); local numberChosen = myTable[indexChosen]; myTable[indexChosen] = myTable[#myTable]; myTable[#myTable] = nil; -
感谢您的意见。这仍然给我同样的错误
标签: arrays random lua null roblox