lua中如何获取数组的大小

Die*_*res 3 lua

我正在尝试获取数组的大小并在其中循环。我尝试使用该getn功能,但没有成功。这是我的代码:

results = 
  {
    address= "Address 1",
    type_address= "RESIDENCIAL",
    phone= "654620460",
    email= "email1@email.com"
  },
  {
    address= "Address 2",
    type_address= "COMERCIAL",
    phone= "604654650",
    email= "email1@email.com"
  }

for i = 0, table.getn(results), 1 do
   if results[i].type_address == "RESIDENCIAL" then
            phone = results[i].phone
            email = results[i].email

            break
        else
            phone = results[1].phone
            email = results[1].email
        end
end

print (phone)
print (email)
Run Code Online (Sandbox Code Playgroud)

Spa*_*par 5

要获取表的大小,请使用#tbl数组。

您忘记将项目包装到{}. 现在您分配results给表 with Address 1,表 withAddress 2被忽略,因为您没有将其分配给任何内容(由于错误)

像这样包裹它:

results = {
    -- items here
}
Run Code Online (Sandbox Code Playgroud)

快速说明:table.getn已弃用且与 相同#tbl,您也可以使用 for k,v in ipairs(results) do. 语句的第三个参数for是可选的,默认为1

for i = 0, #results do
    if results[i].type_address == "RESIDENCIAL" then
    -- etc
end

-- or
for k, v in ipairs(results) do
    if v.type_address == "RESIDENCIAL" then
    -- etc
end
Run Code Online (Sandbox Code Playgroud)