lua中对数组排序的问题

functionorder(x)maxn=table.getn(x)forj=1,maxn,1dofori=j,maxn,1doifx[j].no<x[i].nothen... 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代表的是数组中的排序的列名,应该咋实现啊?
展开
 我来答
w2moon
2011-12-27 · TA获得超过409个赞
知道小有建树答主
回答量:376
采纳率:0%
帮助的人:268万
展开全部
.no的含义和["no"]是一样的。所以改成下面这样
function orderby(x,y)--x是数组,y是列名用字符串,比如"no"
maxn = table.getn(x)
for j=1,maxn ,1 do
for i = j,maxn,1 do
if x[j][y] < x[i][y] then
x[j],x[i] = x[i],x[j]
end
end
end
return x
end
更多追问追答
追问
对啊,谢谢谢谢
那有没有方法得到orderby中的y呢?特别是在不知道y是多少的情况下
追答
比如数组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
print(k)--k是字符串 ”a“,”b“,”c“
end
end
yaoyue1019
2011-12-27 · 知道合伙人互联网行家
yaoyue1019
知道合伙人互联网行家
采纳数:804 获赞数:3392
擅长lua脚本 与android前端交互设计

向TA提问 私信TA
展开全部
这是升序
table.sort(a,function(v1,v2)return v1.no < v2.no end)
这是降序
table.sort(a,function(v1,v2)return v1.no > v2.no end)

其中a是要排序的表名
要学会灵活使用lua自带的库函数
追问
哎,帮助文件是全英文的,看不懂啊...
那获得二维数组中的列名的方式该怎么做啊?
比如数组x={{a=1,b="n",c=true},{a=2,b="f",c=true}}
怎么能取到abc这3个列名?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式