Lua   发布时间:2022-04-12  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了数组 – 如何遍历Lua中的表?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以,我有一张这样的表:
arr =
{
  apples = { 'a',"red",5 },oranges = { 'o',"orange",12 },pears = { 'p',"green",7 }
}

它似乎不可能根据它们的索引访问它们,而值本身就是表,所以我只是把嵌套表的第一个值作为它的索引,所以现在看起来像这样

arr =
{
  apples = { 0,'a',oranges = { 1,'o',pears = { 2,'p',7 }
}

所以,现在任何时候我使用这些表之一,我知道索引是什么,但仍然无法使用索引到表,所以我开始编写一个循环遍历它们的函数,并检查索引,直到它找到了正确的一个。然后我意识到…如果我不能通过它们的索引来引用它们,怎么能循环遍历它们?所以,现在我被困了我真的希望能够在大部分时间内输入arr.apples vs arr [1],但当然有必要同时进行两次。

解决方法

要迭代表中的所有键值对,您可以使用对:
for k,v in pairs(arr) do
  print(k,v[1],v[2],v[3])
end

输出:

pears   2   p   green
apples  0   a   red
oranges 1   o   orange

编辑:请注意,Lua不保证表的关联部分的任何迭代顺序。如果要按特定顺序访问项目,请从arr检索密钥并对其进行排序。然后通过排序的键访问arr:

local ordered_keys = {}

for k in pairs(arr) do
    table.insert(ordered_keys,k)
end

table.sort(ordered_keys)
for i = 1,#ordered_keys do
    local k,v = ordered_keys[i],arr[ ordered_keys[i] ]
    print(k,v[3])
end

输出:

apples  a   red     5
  oranges o   orange  12
  pears   p   green   7

大佬总结

以上是大佬教程为你收集整理的数组 – 如何遍历Lua中的表?全部内容,希望文章能够帮你解决数组 – 如何遍历Lua中的表?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。