如何使用lua从数组中获取所有值

问题描述 投票:1回答:2

我有一个多维数组:

result = {
  {
    data = {
      language = "English",
      name = "Freak Out",
      list = {
        {
          type = "songs",
          album = "1234"
        }, {
          type = "songs",
          album = "4234"
        }, {
          type = "songs",
          album = "5829"
        }
      }
    }
  }
}

如何动态访问此阵列中的列表?

此代码正在打印第一张专辑(1234):

for i, v in pairs(result) do print(v.data.list[1].album) end

我想用他们的album打印所有types。我该怎么做呢?

lua lua-table
2个回答
6
投票

result是一个表格列表 result[i].data.list是一个表格列表。

for _, res in ipairs(result) do
  for _, song in ipairs(res.data.list) do
    print(song.type, song.album)
  end
end

这个输出

songs   1234
songs   4234
songs   5829

0
投票

首先你需要知道表在lua中有两种类型。一种是哈希表,另一种是数组。在你的代码中。 result的成员和result.data是一个哈希表,每个元素都有一个字符串key.result,result.data.list是一个数组表,表中的所有成员都有数字键,默认索引以1开头。

其次,要遍历两个类型表,有两个函数,哈希表对和数组表的iparis

打印列表中的所有相册(数组):

for k, v in ipairs(res.data.list) do
    print(v.type, v.album)
end
© www.soinside.com 2019 - 2024. All rights reserved.