Backpack = {Potion = 'backpack',Stack = 'bag',Loot = 'derp', Gold = 'random'}
Backpack[1] ~= 'backpack' -- nope
你们可以看到,我不能打电话给Backpack [1],因为它不是数字表,在构建背包后如何生成一张桌子,仅包含它的价值?例如:
Table_to_be_Constructed = {Value of Potion,Value of Stack,Value of Loot,Value of Gold} -- this is what i need
看起来很简单,但我找不到办法。
我需要这样,因为我将在Table_to_be_Constructed [i]上运行数字循环
答案 0 :(得分:1)
要迭代表中的所有键值对,请使用pairs函数:
local Table_to_be_Constructed = {}
for key, value in pairs(Backpack) do
table.insert(Table_to_be_Constructed, value)
end
注意:未定义迭代顺序。因此,您可能希望事后对Table_to_be_Constructed
进行排序。
按照惯例,变量名_
用于表示不会使用其值的变量。因此,既然您只想要表中的值,那么您可以这样编写循环:
for _, value in pairs(Backpack) do
Backpack
没有顺序(构造函数语句中的顺序不会保留。)如果要在构造Table_to_be_Constructed
时向其值添加顺序,可以直接执行此操作:< / p>
local Table_to_be_Constructed = {
Backpack.Potion,
Backpack.Stack,
Backpack.Loot,
Backpack.Gold
}
或间接地这样:
local items = { 'Potion', 'Stack', 'Loot', 'Gold' }
local Table_to_be_Constructed = {}
for i=1, #items do
Table_to_be_Constructed[i] = Backpack[items[i]]
end