我正在尝试通过mainMenuButtonGroup1
删除mainMenuButtonGroup6
。
要做到这一点,我想我需要做以下事情:[mainMenuButtonGroup..n]我该怎么做?
local mainMenuButtonGroup1 = { 1,2 }
local mainMenuButtonGroup2 = { 3,4 }
local mainMenuButtonGroup3 = { 5,6 }
local mainMenuButtonGroup4 = { 7,8 }
local mainMenuButtonGroup5 = { 9,10 }
local mainMenuButtonGroup6 = { 11,12 }
for n = 1, 6 do
[mainMenuButtonGroup..n] = nil
end
答案 0 :(得分:2)
根据您的评论,我认为这就像您想要做的那样,t
就是您提到的表格。
for i = 1, 6 do
local k = 'mainMenuButtonGroup' .. i
t[k]:removeSelf()
t[k] = nil
end
字符串连接由..
双周期运算符执行,表格通过.
或[]
进行索引。在这种情况下,您通过[]
进行索引,因为您使用的是变量而不是常量名称。
编辑:将类似的局部变量放入表中。它使得作为一个群体进行迭代变得容易得多。事实上,我知道迭代本地的唯一方法是通过调试库。
local mainMenuButtonGroup = { {1,2}, {3,4}, {5,6}, {7,8}, {9,10} }
table.insert(mainMenuButtonGroup, {11,12})
for i = 1, 6 do
mainMenuButtonGroup[i] = nil
end
但请注意,将表中的数字索引设置为nil
不会重新排列表的数字索引值。 I.e。,你会留下桌子上的洞。请参阅table.remove
。
答案 1 :(得分:1)
假设变量是全局变量,它们将位于_G
表中:
for n = 1, 6 do
for i = _G['mainMenuButtonGroup'..n].numChildren, 1, -1 do
_G['mainMenuButtonGroup'..n][i]:removeSelf()
_G['mainMenuButtonGroup'..n][i] = nil
end
end
如果它们是本地的,您可以使用debug.getlocal,但是您必须遍历所有本地人,直到找到所需的名称。不理想,但可能。