我正在尝试随机调整表的内容。它工作正常,除非有时它不返回表的所有内容。在改组之前,我打印了表的一些键,它们返回nil,但是我不确定如何解决。这是Lua:
local tab = {1,2,3,4,5,6,7,8,9,10}
function ReturnRandomTable(t)
local newt = {}
local i = 1
repeat
local rand = math.random(1,#t)
newt[i] = t[rand]
print(t[rand]) --sometimes prints nil
t[rand] = nil
i = i + 1
until #t == 0
return newt
end
table.shuffle = function(t)
local newt = ReturnRandomTable(t)
for i = #t,1,-1 do
t[i] = nil
end
return newt
end
local randt = table.shuffle(tab)
for _,v in pairs(randt) do
print(v)
end
任何帮助将不胜感激!
答案 0 :(得分:0)
通过将t[rand] = nil
更改为table.remove(t,rand)
来解决。