按降序排列 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)}))
我已经尽了一切努力让这个 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)}))