• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Lua多维表的遍历中的赋值

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

  说到Lua的遍历将要使用到循环;先说遍历再说循环;

  遇到这样类似结构的一个table 

Data={
    [102]={p1=1,pa={1,2,3}},
    [103]={p1=2,pa={2,3,4}},
    [105]={p1=4,pa={3,4,5}}
}

  目的获得key 值与pa的一个表,实现下

 1 -- 使用table.insert方法插入到新表中
 2 for k,v in pairs(Data) do
 3     print(k,v)
 4     Data2[k]={};
 5     table.insert(Data2[k],v.pa);
 6 end
 7 for k,v in pairs(Data2) do
 8     print(k,v)
 9     for k2,v2 in pairs(v) do
10         print(k,v2)
11     end
12 end

  但是,结果并不如人意;这样实现的结果是将表复杂化了。此时遍历出表的结构为:

1 Data2= {
2     102={1={1=1,2=2,3=3,},},
3     103={1={1=2,2=3,3=4,},},    
4     105={1={1=3,2=4,3=5,},},
5 }

  这不是我要的pa,要改变现状;

for k,v in pairs(Data) do
    print(k,v)
    Data3[k]=v.pa;    
end
-- print 
Data3={
        102={1=1,2=2,3=3,},
        103={1=2,2=3,3=4,},
        105={1=3,2=4,3=5,},
      }        

  为了这个循环结果我浪费了近一天时间;有点笨了,呵呵;当时没有想到,只为了使用查询遍历找到匹配的数据;最初使用的循环还是ipairs,没有输出结果,再然后才晓得ipairs与pairs的区别,ipairs的遍历条件更加苛刻,只能遍历数组类的表,遇到nil值 就会退出。所以ipairs 只适于一些结构以及数据相对简单且key最好从1开始,很注重顺序;对于pairs就随意得多,可以将任意表无序遍历。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Lua查看栈的宏发布时间:2022-07-22
下一篇:
lua脚本语言发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap