美文网首页
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://blog.csdn.net/cws1214/article/details/14452879 pa...

  • Lua遍历table

    Lua中遍历table主要有四种方式,各有各的不同 1. for key,value in pairs(tbtes...

  • Lua元表

    Lua元表 在Lua中,我们可以通过key找到对应的value值,但是无法对两个table进行操作。 在Lua中为...

  • lua迭代器和表

    迭代器:pairs :迭代 table,遍历表中所有的 key 和 valueipairs :按照索引从1开始,...

  • Lua 语法入门

    赋值 lua 赋值支持多个值同时赋值 table lua table 的 key 可以是数字也可以是字符串,并且 ...

  • Lua Table 随机排序

    1、在lua里打乱Table的顺序 for i table.sort(guildStartPoints,funct...

  • Lua 元表(Metatable)

    在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。 因...

  • LUA 元表(Metatable)

    在 Lua table 中我们可以访问对应的key来得到value值,但是却无法对两个 table 进行操作。 因...

  • 五、C++修改Lua的变量和Table的值

    上一篇文章讲了C++如何获得Lua中的变量和Table中的值,这篇文章主要讲如何修改Lua中的变量的值和Table...

  • 3、表的遍历?

    四种方式遍历table for泛型遍历:pairsfor key, value in pairs(tbtest) ...

网友评论

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

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