【发布时间】:2015-08-11 06:53:50
【问题描述】:
假设我有一张这样的桌子:
{
value = 4
},
{
value = 3
},
{
value = 1
},
{
value = 2
}
我想遍历它并按顺序打印值,所以输出如下:
1
2
3
4
我该怎么做,我了解如何使用 ipairs 和 pairs 和 table.sort,但这仅在使用 table.insert 并且密钥有效时才有效,我需要在此循环值的顺序。
我尝试了一个自定义函数,但它只是以错误的顺序打印它们。
我试过了:
- 创建索引并循环
- 对表进行排序(抛出错误:尝试对表和表执行 __lt)
- 还有排序、索引和其他表的组合,不仅不起作用,而且变得非常复杂。
我真的好难过。
【问题讨论】:
-
您可以添加一些代码以便我们查看您尝试了什么吗?
-
对不起,我在尝试后删除了它(在我的启动文件中)所以不是真的......就像我说它不起作用,只是我在黑暗中刺伤。其中大部分只是循环,循环......循环
-
你读过lua-users.org/wiki/SortedIteration的例子吗?在那里你可以找到一个在 table 上按顺序迭代的例子(它有点复杂,但也许这就是你的意思?)。
-
table.sort(your_table, function(a,b) return a.value < b.value end) -
@deem 我见过这个,虽然它有点太复杂了,无法理解。我可能错了,但我能找到的只是排序键的方法,而不是值。
标签: sorting lua lua-table computercraft