Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sorting 按任意值排序lua表_Sorting_Lua_Lua Table - Fatal编程技术网

Sorting 按任意值排序lua表

Sorting 按任意值排序lua表,sorting,lua,lua-table,Sorting,Lua,Lua Table,我有一个具有以下结构的表: table = { [1] = {"something", "high"} [2] = {"something else", "low"} [3] = {"something further", "medium"}, [4] = {"yet more something", "medium"}, } 我要做的是,使用委托函数用table.sort()对该表进行排序,以便优先级变量(高、低、中等)对列表进行排序,列表中紧跟高,然后紧跟中

我有一个具有以下结构的表:

table = {
    [1] = {"something", "high"}
    [2] = {"something else", "low"}
    [3] = {"something further", "medium"},
    [4] = {"yet more something", "medium"},
}

我要做的是,使用委托函数用table.sort()对该表进行排序,以便优先级变量(高、低、中等)对列表进行排序,列表中紧跟高,然后紧跟中,然后紧跟低。我该怎么做呢?

您似乎知道
table.sort
是如何工作的,那么您在哪里呢? 只需创建一个查找表,将优先级名称转换为整数,然后比较:

priorities = {high = 2, medium = 1, low = 0}
table.sort(t, function(e1, e2)
    return priorities[e1[2]] > priorities[e2[2]]
end)

您似乎知道
table.sort
是如何工作的,那么您在哪里呢? 只需创建一个查找表,将优先级名称转换为整数,然后比较:

priorities = {high = 2, medium = 1, low = 0}
table.sort(t, function(e1, e2)
    return priorities[e1[2]] > priorities[e2[2]]
end)
table.sort(t,
功能(e1、e2)
返回e1[2]:sub(-1)
表格。排序(t,
功能(e1、e2)
返回e1[2]:sub(-1)
这个想法很有趣,但非常晦涩和不灵活,你不觉得吗?我只是想补充一点注意事项,因为这是一个非常紧凑的解决方案,但我认为不应该进入生产代码;)@昙花一现-请不要将我的解决方案嵌入到生产代码中:-)这个想法很有趣,但非常模糊和不灵活,你不认为吗?我只是想补充一点注意事项,因为这是一个非常紧凑的解决方案,但我认为不应该将其放入生产代码中;)@昙花一现-请不要将我的解决方案嵌入生产代码:-)