我想从表中选择一个随机的键/值对,但是使用math.random()
不起作用。
--intialises randomization
math.randomseed(os.time()+30) --sets a random seed based on the time
math.random(); math.random(); math.random(); --clears presets
local phrases = {
["a"] = 3
["b"] = 7
["d"] = 4
["f"] = 8
["p"] = 5
}
local phrase = phrases[math.random(1,5)]
phrase
将始终输出为nil
。是否有一种使索引与math.random()
一起使用的方法,或者我可以使用的另一种方法?
[math.random(1, 5)
返回1到5之间的数字。您的键是字符串。
您可以创建表(例如:数组-整数键),从那里获取随机键,然后访问phrases
:
local phrases = {
["a"] = 3,
["b"] = 7,
["d"] = 4,
["f"] = 8,
["p"] = 5
}
local keys = {}
for k in pairs(phrases) do
table.insert(keys, k)
end
local phrase = phrases[keys[math.random(1,5)]]