如何在Lua中获取数组的顺序

在 Lua 中,有没有一种(快速的)方法可以对数组进行排序并且得到排序后的顺序,例如:

a = {4,3.2,1,7}

=> 排序顺序是 3,2,1,4(因为 a[3]=1,a[2]=3.2 ...)

点赞
用户107090
用户107090

尝试以下代码。它使用值来比较对索引数组进行排序。

a = {4,3.2,1,7}
o = {}
for i=1,#a do
    o[i]=i
end
table.sort(o,function (x,y) return a[x]<a[y] end)
for i=1,#o do
    print(i,o[i],a[o[i]])
end
2015-09-10 16:13:28