Lua: 如何从数组中随机取一个元素?

Lua: How to get a random element from an array?

如何从Lua中的数组中获取随机元素? 比如有一个数组:

array={"apple","orange","pear","dog","cat","goat"}

你通过索引操作得到一个table个元素array[index]。因此,为了获得随机元素,您只需要区间 [1;#array] 的随机索引,其中 #array 是数组中元素的数量。

local randomIndex = math.random(1, #array) -- or short math.random(#array)
local randomElement = array[randomIndex]

https://www.lua.org/manual/5.4/manual.html#pdf-math.random

通过删除它来获取它并填充另一个table避免双打...

do
 local array1 = {"apple", "orange", "pear", "dog", "cat", "goat"}
 local array2 = {}

 for i = 1, #array1 do
-- table.remove() returns removed value so it can be used as a value
  table.insert(array2, table.remove(array1, math.random(#array1)))
 end

 print(table.concat(array2, ', '))
 -- return table.concat(array2, ', ', 1, 1), array2 -- Possible return values
end

举个例子...

orange, pear, cat, goat, dog, apple