Компаратор
table.sort
действует как <
- он использует его для упорядочения значений в списке так, чтобы наименьшее было первым, а наибольшее последним. Это выглядит как
первый <второй <третий <.... <последний </p>
Если вы хотите изменить этот порядок, вы должны вместо него указать «>
операция»:
первый> второй> третий> ....> последний
-- 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)}))