Lua - 将表中的元素按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

这是通过迭代器的方法,将传入的 t 表,在内部按key值进行排序,经过此过程表 t 转换为按key值从小到大的顺序排列后的新表。

用法如下:

for key, value in pairsByKeys(table_init) do   

local    nSeq  = 15

 if key < nSeq then          

  print("Key为" .. key .. "的Value值为:" .. value)

end

遍历表 table_init ,并输出key值小于 nSeq 的key值及其对应的value值(此处假设table_init表中的value值为可输出值)。

你可能感兴趣的:(Lua - 将表中的元素按key值进行排序)