打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
lua 遍历 table

Lua常用的4中遍历方式

for key, value in pairs(tbtest) do          XXX  end  
这样的遍历顺序并非是tbtest中table的排列顺序,而是根据tbtest中key的hash值排列的顺序来遍历的。for key, value in ipairs(tbtest) do XXX end  这样的循环必须要求tbtest中的key为顺序的,而且必须是从1开始,ipairs只会从1开始按连续的key顺序遍历到key不连续为止。
for i=1, #(tbtest) do XXX end
这种遍历,只能遍历当tbtest中存在key为1的value时才会出现结果,而且是按照key从1开始依次递增1的顺序来遍历,找到一个递增不是1的时候就结束不再遍历,无论后面是否仍然是顺序的keyfor i=1, table.maxn(tbtest) do XXX end
这种效率太低了

 

 

推荐的方法:

--迭代器
function
pairsByKeys(t) local a = {} for n in pairs(t) do a[#a+1] = n end table.sort(a) local i = 0 return function() i = i + 1 return a[i], t[a[i]] end end

for key, value in pairsByKeys(tbtestAward) do     
 if nSeq <= key then         
  return key     
 end 
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在 C++ 中遍历 Lua table
lua 中pairs 和 ipairs区别(转)
图解LinkedHashMap原理
为什么我总是当队长——lua的table实现以及遍历方式
【笨木头Lua专栏】基础补充22:弱引用table | 笨木头与游戏开发
Lua1
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服