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]
通过删除它来获取它并填充另一个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
如何从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]
通过删除它来获取它并填充另一个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