lua 遍历table

lua中有四种主要的遍历一个table的方法。

第一种方法:

1 for key, value in pairs(testtb) do
2     xxxx
3 end

这种方法是按照key哈希后的顺序遍历的。比如下面代码的输出,并不是按顺序的

testtb = {
    [1] = 1;
    [2] = 2;
    [3] = 3;
    [5] = 5;
    [6] = 6;
    ["w"] = "w";
}
for key, value in pairs(testtb) do
    print(key, value)
end
[[ 输出
6    6
2    2
3    3
1    1
5    5
w    w
]]

第二种方法:

for key, value in ipairs(testtb) do 
    xxx
end

这种方法提供了按照key的大小顺序来遍历,但是必需要求table中的key是顺序的,而且必需是从1开始,直到key不连续为止

第三种方法:

for i = 1, #(testtb) do
    xxx
end

#(table),获取的是table中,整型key从1开始,直到key不连续为止的key的个数

第四种方法:

for i=1, table.maxn(testtb) do
    xxx
end

table.maxn获取的是table中,整型key的最大值。