数组 – 如何遍历Lua中的表?
发布时间:2020-12-15 00:21:28 所属栏目:大数据 来源:网络整理
导读:所以,我有一张这样的表: arr ={ apples = { 'a',"red",5 },oranges = { 'o',"orange",12 },pears = { 'p',"green",7 }} 它似乎不可能根据它们的索引访问它们,而值本身就是表,所以我只是把嵌套表的第一个值作为它的索引,所以现在看起来像这样: arr ={ a
所以,我有一张这样的表:
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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |