如何在Lua中对多维表进行排序?

问题描述 投票:1回答:1

我有一个基本上由以下组成的表:

myTable = {{1, 6.345}, {2, 3.678}, {3, 4.890}}

并且我想按十进制值对表格进行排序。因此,我希望输出为:

{{2, 3.678}, {3, 4.890}, {1, 6.345}}

[如果可能,我想使用table.sort()函数。预先感谢您的帮助:-)

arrays sorting multidimensional-array lua lua-table
1个回答
0
投票

鉴于您的表是一个序列,您可以直接使用table.sort。此函数接受比较谓词作为其第二个参数,它规定了比较逻辑:

require 'table'

myTable = {{1, 6.345}, {2, 3.678}, {3, 4.890}}

table.sort(myTable, function(lhs, rhs) return lhs[2] < rhs[2] end)

例如打印表格如for _, v in ipairs(myTable) do print(v[1], v[2]) end则显示所需的顺序:

2       3.678
3       4.89
1       6.345
© www.soinside.com 2019 - 2024. All rights reserved.