lua中对数组排序的问题

function order(x)
maxn = table.getn(x)
for j=1,maxn ,1 do
for i = j,maxn,1 do
if x[j].no < x[i].no then
x[j],x[i] = x[i],x[j]
end
end
end
return x
end

以上是以数组的.no项来进行排序的
现在我想把函数调整为orderby(x,y)
其中y代表的是数组中的排序的列名,应该咋实现啊?

茅侃侃
浏览 1563回答 3
3回答

红颜莎娜

.no的含义和["no"]是一样的。所以改成下面这样function orderby(x,y)--x是数组,y是列名用字符串,比如"no"maxn = table.getn(x)for j=1,maxn ,1 dofor i = j,maxn,1 doif x[j][y] < x[i][y] thenx[j],x[i] = x[i],x[j]endendendreturn xend

萧十郎

比如数组x={{a=1,b="n",c=true},{a=2,b="f",c=true}}怎么能取到abc这3个列名?for _,sub in pairs(x) do for k,v in pairs(sub) do &nbsp; print(k)--k是字符串 ”a“,”b“,”c“ endend
打开App,查看更多内容
随时随地看视频慕课网APP