首页 > 代码库 > Lua 多维表的遍历中的赋值
Lua 多维表的遍历中的赋值
说到Lua的遍历将要使用到循环;先说遍历再说循环;
遇到这样类似结构的一个table
Data=http://www.mamicode.com/{ [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) do10 print(k,v2)11 end12 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就随意得多,可以将任意表无序遍历。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。