按降序排列 Lua Table(从高到低)

Order Lua Table in Descending Order (Highest to Lowest)

我已经尽了一切努力让这个 lua table 从高到低排序。我查看了整个网络上的其他 Whosebug 线程,但没有用。

local DTable = {}
local SC = 0
for e,q in pairs(LastATP) do
  local CT = {e,q}
  SC = SC + 1
  table.insert(DTable, SC, CT)
end         

table.sort(DTable, function(a, b) return a[2] < b[2] end)

"E" 是一个随机密钥,例如)dxh3qw89fh39fh - 而 q 是一个数字。请帮忙。我已经尝试了一切。当我尝试遍历排序的 table 时,我也使用 "for i,v in ipairs(DTable)" - 请尽快回复!

table.sort 的比较器的作用类似于 <——它使用它来排列列表中的值,以便最小的在前,最大的在最后。这看起来像

first < second < third < .... < last

如果你想颠倒那个顺序,你应该给它一个“>操作”来代替:

first > second > third > .... > last

-- Sort `DTable` by the second value in the pair, decreasing
table.sort(DTable, function(a, b) return a[2] > b[2] end)

在您的问题中,您说像 q 这样的值是数字。如果它们实际上是字符串,但你想将它们排序为数字,你应该使用 tonumber 来转换它们:

-- Note that keeping track of "SC" is not necessary, it is just the
-- length of DTable, which is where table.insert inserts by default
table.insert(DTable, {e, tonumber(q)}))