求一个迭代器.........

发布于 2020-11-01 14:09:53

原table
t={
[28000] = "a",
[178000] = "e",
[288000] = "f",
[666000] = "d"
}
求一个能按照KEY从小到大排序的迭代器组成新数组
t_new={

[1] = "a",
[2] = "e",
[3] = "f",
[4] = "d"

}
pairs不能排序,ipairs key值不能有间隔.求解.

查看更多

关注者
0
被浏览
690
Evan
Evan 认证专家 2020-11-01
function sortByKey(info)
  local arr = {}
  for k,v in pairs(info) do
    table.insert(arr,k)
  end
  table.sort(arr)
  local newArr = {}
  for k,v in pairs(arr) do
    table.insert(newArr,info[v])
  end
  return newArr
end
function main()
    t={
      [28000] = "a",
      [178000] = "e",
      [666000] = "d",
      [288000] = "f",
    }
    t_new = sortByKey(t)
    for k,v in pairs(t_new) do
        logDebug(string.format("k:%s,v:%s",k,v))
    end
end
1 个回答

撰写答案

请登录后再发布答案,点击登录

发布
问题

分享
好友

手机
浏览

扫码手机浏览