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

如何使用lua从数组中获取所有值,lua,lua-table,Lua,Lua Table,我有一个多维数组: 结果={ { 数据={ 语言=英语, name=疯狂, 列表={ { 类型=歌曲, 相册=1234 }, { 类型=歌曲, 相册=4234 }, { 类型=歌曲, 相册=5829 } } } } } 如何动态访问此数组中的列表 此代码正在打印第一个相册1234: 对于i,v在pairsresult中执行printv.data.list[1]。相册结束 我想打印所有相册及其类型。如何执行此操作?结果是一个表列表 结果[i].data.list是表的列表 for _, res i

我有一个多维数组:

结果={ { 数据={ 语言=英语, name=疯狂, 列表={ { 类型=歌曲, 相册=1234 }, { 类型=歌曲, 相册=4234 }, { 类型=歌曲, 相册=5829 } } } } } 如何动态访问此数组中的列表

此代码正在打印第一个相册1234:

对于i,v在pairsresult中执行printv.data.list[1]。相册结束 我想打印所有相册及其类型。如何执行此操作?

结果是一个表列表 结果[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
结果是一个表列表 结果[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

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

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

打印列表阵列中的所有相册:

for k, v in ipairs(res.data.list) do
    print(v.type, v.album)
end

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

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

打印列表阵列中的所有相册:

for k, v in ipairs(res.data.list) do
    print(v.type, v.album)
end

列表实际上是一个数组,因为在您指定的格式中它是一个对象。对象不能这样格式化。列表实际上是一个数组,因为在您指定的格式中它是一个对象。对象不能这样格式化。除了使用散列的内部实现,Lua中的所有表都是字典,只有一种类型。键可以是除nil和NaN之外的任何类型和值。表中的某些键可以是正整数。有些这样的桌子上有一张桌子。具有序列的表可以有任何附加键。随着键的添加或删除,表可以在有序列和无序列之间切换。仍然只有一种类型。首先谢谢。但是你可以看到关于struct Table的源代码。有一个数组成员和一个节点*列表作为散列部分。是的,它是一个struct,而不是union。此外,pairs迭代整个表,而不仅仅是散列部分的内部内容。并且,IPAIR迭代从1到但不包括第一个nil值的正整数键,该值可能是也可能不是数组部分的全部。除了使用散列的内部实现,Lua中的所有表都是字典,只有一种类型。键可以是除nil和NaN之外的任何类型和值。表中的某些键可以是正整数。有些这样的桌子上有一张桌子。具有序列的表可以有任何附加键。随着键的添加或删除,表可以在有序列和无序列之间切换。仍然只有一种类型。首先谢谢。但是你可以看到关于struct Table的源代码。有一个数组成员和一个节点*列表作为散列部分。是的,它是一个struct,而不是union。此外,pairs迭代整个表,而不仅仅是散列部分的内部内容。并且,IPAIR迭代从1到但不包括第一个nil值的正整数键,该值可能是也可能不是数组部分的全部。