gpt4 book ai didi

sorting - 如何在lua中对多个值的表进行排序?

转载 作者:行者123 更新时间:2023-12-04 12:46:44 24 4
gpt4 key购买 nike

我需要一个函数sort_on_values(t, ...)其中 ... 是表 t 应该排序的变量。或 sort_on_values(t, t_v)其中 t_v 是一个包含变量的表,表 t 应该按照这些变量进行排序。或者类似的东西。

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

示例#1:

我有一张 table

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

关于sorting - 如何在lua中对多个值的表进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45164441/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com