Corona SDK(LUA)-插入表格时出现问题

Corona SDK(LUA)-插入表格时出现问题,lua,coronasdk,Lua,Coronasdk,我已经找了很多地方,但找不到解决这个问题的办法。如果您能提供任何帮助,我们将不胜感激 -- The array compiled of enemies only allowed in the current -- level phase local EnemyList = {} -- Counter to determine the next spot in the EnemyList -- array to insert into local counter = 1 for i=1,#E

我已经找了很多地方,但找不到解决这个问题的办法。如果您能提供任何帮助,我们将不胜感激

-- The array compiled of enemies only allowed in the current
-- level phase
local EnemyList = {}
-- Counter to determine the next spot in the EnemyList
-- array to insert into
local counter   = 1

for i=1,#Enemies do
    if Enemies[i].phase == 0 or Enemies[i].phase == which_phase then
        EnemyList[counter].src      = Enemies[i].src
        EnemyList[counter].exp      = Enemies[i].exp
        counter                     = counter + 1
    end
end
我在引用
EnemyList
表/数组时,遇到一个关于尝试索引
nil
值的错误。我试图完成的是,我试图编译一个新的数组,其中只允许有敌人。我想我不确定如何在
EnemyList
表中插入新行。我尝试使用
table.insert
,但是value参数是必需的,我不确定如何使用,因为我正在将多个值存储到
EnemyList
数组中

对于如何将新行插入空表/数组的正确方法,如有任何帮助或见解,将不胜感激。谢谢

编辑: 我得到了一个可行的解决方案,但我想如果将来有人发现它,我应该在这里更新代码

-- The array compiled of enemies only allowed in the current
-- level phase
local EnemyList = {}

for i=1,#Enemies do
    if Enemies[i].phase == 0 or Enemies[i].phase == which_phase then
        table.insert( EnemyList, { src = Enemies[i].src, exp = Enemies[i].exp } )
    end
end

您可以在Lua中的表中存储表。表以两种方式之一编制索引:首先,按索引号。这是
表所使用的;它将在下一个索引编号处添加一个条目

第二种方式是通过钥匙;e、 g

> t = {}
> t.test = {}
> =t.test
table: 0077D320
您可以将表插入到表中;这就是创建二维表格的方式。由于您定义表的方式,
type(EnemyList[counter])=table

您可以通过运行
table.insert(table,value)
将新条目插入表中。这将为下一个可用的数字条目分配
<代码>类型(值)
也可以是
;这就是如何在Lua中创建“多维数组”


另一方面,我建议在IPAIR(敌人)中对i,v使用
,而不是对i=1使用
,#敌人
。第二个将迭代
表中的所有数字项

我真的很感激你的回答,但我很难完全理解如何在我的情况下实施它。你能给我举个例子,说明table.insert()代码相对于我的例子是什么样的吗?我会自己修修补补,但如果你能提供进一步的指导,我将非常感激。因此我最终修修补补并按照你建议的方式工作:table.insert(EnemyList,{src=buzzers[I].src,exp=buzzers[I].exp})@JoshWa真棒!如果你想进一步阅读,我建议你仔细阅读。谢谢你的链接和帮助!现在来研究IPAIR,因为我不太明白关于更改循环的建议:)我会对答案投赞成票,但我没有足够的代表:(尝试以下方法:
t={1,1,2,3,5}
对于IPAIR中的I,v(t)do print(I,v)end