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

我有一个多维数组:

result = {
  {
    data = {
      language = "英语",
      name = "Freak Out",
      list = {
        {
          type = "歌曲",
          album = "1234"
        }, {
          type = "歌曲",
          album = "4234"
        }, {
          type = "歌曲",
          album = "5829"
        }
      }
    }
  }
}

我该如何动态访问这个数组中的列表?

这段代码打印第一个专辑(1234):

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

我想打印所有album与它们的type。我该怎么做?

点赞
用户7552
用户7552

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
2019-03-20 15:15:22
用户7556173
用户7556173

首先你需要知道Lua中有两种类型的表,一种是哈希表,另一种是数组。在你的代码中,_result_的成员和_result.data_是哈希表,每个元素都有一个字符串键。_result_和_result.data.list_是一个数组表,表中的所有成员都有数字键,索引默认从1开始。

其次,要遍历这两种类型的表,有两个函数,pairs用于哈希表和iparis用于数组表。

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

for k, v in ipairs(res.data.list) do
    print(v.type, v.album)
end
2019-03-22 07:02:00