Lua中随机从数组中打印元素

我想要做的是从数组中随机打印元素,这里是示例代码:

myTable = { "one", "two", "three","four"}

-- 在这里打印:one,three,four

点赞
用户1442917
用户1442917

打印随机元素很简单 — print(myTable[math.random(#myTable)]) — 但如果你需要使每个打印元素都是唯一的,那么最好将数组中的元素洗牌并逐个打印结果元素。你可以参考这个 SO 答案 来获取灵感。

2016-02-14 07:00:33
用户5352026
用户5352026

如果您想要N个元素,您需要使用循环:

local myTable = { "one", "two", "three","four"}
local result = {}
for i=1,3 do -- 在这里设定N,例如如果您想要3个元素则为3
    result[i] = table.remove(myTable,math.random(#myTable))
end
print(table.concat(result,", "))
-- 例如,输出为 "four, two, three"

如果您请求的元素数量超过了表中所拥有的元素数量,代码将会出错。如果您想在以后重新使用该表,您将需要复制它,因为这段代码实际上从表中删除元素。

2016-02-14 11:38:53