Lua多次元テーブルの遍歴における付与
5879 ワード
Luaの遍歴といえばループに使います.まず遍歴してから循環します.
このような構造のtableに遭遇しました
目的key値とpaの1つのテーブルを獲得して、実現します
しかし、結果は気に入らなかった.このように実現した結果,表は複雑化した.このとき、テーブルを巡回する構造は次のとおりです.
これは私が望んでいるpaではなく、現状を変える必要があります.
このサイクルの結果のために私は一日近く無駄にしました.少し愚かで、ほほほ;クエリーを使用して一致するデータを見つけるためだけだとは思わなかった.最初に使用したループはやはりipairsで、結果を出力していません.それからipairsとpairsの違いがわかります.ipairsの遍歴条件はもっと厳しく、配列クラスのテーブルを遍歴するしかなく、nil値に遭遇すると退出します.だからipairsはいくつかの構造とデータが比較的簡単でkeyは1から始めたほうがよく、順序を重視している.pairsの場合は、任意のテーブルを無秩序に遍歴することができます.
このような構造の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つのテーブルを獲得して、実現します
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の場合は、任意のテーブルを無秩序に遍歴することができます.