美文网首页
lua中如何按照key顺序遍历table

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

作者: 玛玛哈哈m | 来源:发表于2018-07-16 15:15 被阅读0次

    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
    

    相关文章

      网友评论

          本文标题:lua中如何按照key顺序遍历table

          本文链接:https://www.haomeiwen.com/subject/serbpftx.html