如何在lua中根据多个值对表进行排序?

me2 节拍

我需要一个函数sort_on_values(t, ...)...其中t应该对表进行排序的变量在哪里sort_on_values(t, t_v)wheret_v是带有变量的表,t应根据该表对表进行排序。或类似的东西。

函数返回已排序的表或对现有表进行排序。

示例#1:

我有一张桌子

t = {{a=1,b=2,c=3},
     {a=1,b=1,c=2},
     {a=3,b=2,c=2}}

我这样做:

t = sort_on_values(t,a,b,c)

结果我得到:

t == {{a=1,b=1,c=2},
      {a=1,b=2,c=2},
      {a=3,b=2,c=2}}

示例#2:

我这样做:

t = sort_on_values(t,b,a,c)

结果我得到:

t == {{a=1,b=1,c=2},
      {a=1,b=2,c=3},
      {a=3,b=2,c=2}}

如果我有一张像这样的桌子,这也应该有效

t = {{a=1,b=1,c=2,d=1},
     {a=1,b=2,c=3,d=2},
     {a=3,b=2,c=2,d=3}}

等等。

我怎样才能做到这一点?

母体

vararg 函数的变体

function sort_on_values(t,...)
  local a = {...}
  table.sort(t, function (u,v)
    for i = 1, #a do
      if u[a[i]] > v[a[i]] then return false end
      if u[a[i]] < v[a[i]] then return true end
    end
  end)
end

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Kotlin中基于/比较多个值进行排序?

根据值的时间序列对表中的值进行排序

如何根据列中的值对表中的行进行分组/汇总

如何通过Lua中的值对表进行排序?

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

如何在React JS中按ASC和DESC ALL字段对表进行排序

如何在Delphi 7中根据TStringList的值对它进行排序

如何在Google Apps脚本中对表示不同数据集的嵌套数组进行排序?

如何在Python中根据值的首字母对列表值进行排序

根据组合框中的值对表行中列出的选择字段进行排序

如何在HashMap中对值进行排序

如何在Mysql / Sql中按时间列对表进行排序?

如何在ASP.NET剃须刀中对表格进行排序

如何在1列上对表进行排序,然后在PHP中对另一列进行排序

每次更新其中一个值时,如何在Excel中自动对表进行排序?

如何使用Angular.js根据数字值对表格进行排序?

根据选项选择对表进行排序

根据条件对表进行排序和添加

如何在Spark Java中根据其值对列表进行排序?

根据多个值对 Json 进行排序

根据下拉选项对表格进行排序

Oracle查询根据子表中的值对表进行过滤和排序

如何根据当前日期在 Lua 中对表格进行排序

如何在 Contour 中按两列对表格进行排序?

如何在mysql中以双条件顺序对表数据进行排序

如何根据多个因素对 Scala 中的“映射”值进行排序?

如何在Sql中对表进行分组

按 R 中的列值对表行进行排序

根据特定的默认列对表进行排序