我已经在这里找到了尽可能多的答案,因为我可以找到我认为足够接近我的问题的标题.我没有看到任何人有我的确切问题,所以我问一个问题,我希望只是我对一个简单的事实一无所知.
我正在尝试编写一个记录HP(int)和距离(boolean)的表,然后按HP排序,只有顶部附近的Range中的那些.
local tableTest = { {hp = 64,range = true,name="Frank"},{hp = 100,name="Joe"},{hp = 2,range = false,name="Jim"},{hp = 76,name="Tim"},{hp = 17,name="Jill"},{hp = 16,name="Phillip"},} -- Sort by HP and Range to find lowest Unit in Range. table.sort(tableTest,function(x,y) return x.hp < y.hp and x.range end) for i=1,#tableTest do print(tableTest[i].name,tableTest[i].hp) end
这个输出是:
Phillip 16 Jim 2 Frank 64 Jill 17 Tim 76 Joe 100
我期待的输出是:
Phillip 16 Frank 64 Tim 76 Joe 100 Jim 2 Jill 17
我祈祷这只是我对table.sort如何使用这样的多个检查的误解(我认为它更接近你如何声明这样的变量).
编辑
附加信息 – 如果我更改范围= false索引在表中的位置顺序,输出也会更改(仍然不正确).这些值只是在排序后将自己排序为不同的索引.
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。