我有一个以下表格的Lua表:
tTest = {}
tTest.word1 = {
IsOnline = true,
UpdateTime = 2,
Value = 150
}
tTest.word2 = {
IsOnline = true,
UpdateTime = 1,
Value = 25
}
tTest.word3 = {
IsOnline = true,
UpdateTime = 1,
Value = 1000
}
我想首先使用最高值迭代此表。所以我尝试了这个
for k,v in pairs(tTest, function(a,b) return a.Value > b.Value end) do
print (v.Value)
end
但它没有显示已排序的值。
任何帮助都将不胜感激,谢谢。
答案 0 :(得分:2)
如果您可以控制您的结构,请设计如下表格:
tTest = {
{
"word1",
IsOnline = true,
UpdateTime = 2,
Value = 150
},
{
"word2",
IsOnline = true,
UpdateTime = 1,
Value = 25
},
{
"word3",
IsOnline = true,
UpdateTime = 1,
Value = 1000
}
}
并且,现在您可以将表排序为:
table.sort( tTest, function(u,v) return u.Value > v.Value end )
如果无法控制源表;创建一个临时表:
local t = {}
for k, v in pairs(tTest) do
t[ #t + 1 ] = v
table.insert(t[#t], k)
end
然后在此本地表table.sort
上使用与上述逻辑相同的t
函数。