Sorting 使用字符串键进行表排序
这张桌子我需要帮忙Sorting 使用字符串键进行表排序,sorting,lua,lua-table,Sorting,Lua,Lua Table,这张桌子我需要帮忙 tbl = { Noa={10,0,3}, melvin={5,3,1}, jeex={500,0,2}, kiim={100,2,3} } 我需要此表中的所有值,按表中的第一个值排序 例如 输出> jeex 500 ,0,2 kiim 100 ,2,3 Noa 10,0,3 melvin 5,3,1 只有具有数字索引的表元素才具有顺序。不能对键为字符串的表进行排序。因此,您的第一步是创建一个实际具有订单的表。通过迭代当前表的
tbl = {
Noa={10,0,3},
melvin={5,3,1},
jeex={500,0,2},
kiim={100,2,3}
}
我需要此表中的所有值,按表中的第一个值排序
例如
输出>
jeex 500 ,0,2
kiim 100 ,2,3
Noa 10,0,3
melvin 5,3,1
只有具有数字索引的表元素才具有顺序。不能对键为字符串的表进行排序。因此,您的第一步是创建一个实际具有订单的表。通过迭代当前表的元素并在基于当前表的新表中插入一个值来完成此操作,该表同时包含键和值
local array = {}
for key, value in pairs(tbl) do
array[#array + 1] = {key = key, value = value}
end
一旦有了实际数组,就可以使用
表对其进行排序。sort
表无法排序。不过,您可以对键进行排序。我有一个简单的解决方案| |函数表ORTBBYVALUE(tbl)——按表数组上的第一个值排序{}for,i in pairs(tbl)do table.insert(i,)--tbl={[1…]={1,1,name}数组[table.getn(array)+1]=i end table.sort(数组,函数(a,b)返回[1]>b[1]end)返回数组end