lua中如何按照key顺序遍历table

2018-07-16  本文已影响0人  玛玛哈哈m

https://blog.csdn.net/cws1214/article/details/14452879

pairs迭代器可以遍历table中所有key,但是key的顺序无法保证是table中的顺序

我在《Programming In Lua》中看到了一个神奇的迭代器,使用它就可以达到我想要的这种遍历方式,而且不需要去遍历那些不存在的key。它的方法是把你所需要遍历的table里的key按照遍历顺序放到另一个临时的table中去,这样只需要遍历这个临时的table按顺序取出原table中的key就可以了。如下:

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
上一篇下一篇

猜你喜欢

热点阅读