names = {"Peter", "Paul", "Mary"}
grades = {Mary = 10, Paul = 7, Peter = 8}
--n1和n2是指name中的成员
table.sort(names, function (n1, n2)
return grades[n1] < grades[n2] -- compare the grades
end)
for i,v in pairs(names) do
print (i,v)
end
输出结果:
1 Paul
2 Peter
3 Mary
table.sort里面的function指的是第一个参数table的排序对象,这个函数只有table是数组的时候才适用。
group_page = function(table)
local key_table = {};
for key ,_ in pairs(table) do
table.insert(key_table,key);
end
table.sort(key_table);
return key_table;
end
可以通过以上的函数对key进行排序,之后通过key可以顺序访问table的v。因为table.sort只能对数组的value排序,所以一个变通的方法就是生成一个数组的table,将key保存到这个数组中。对数组排序。。