【发布时间】:2018-09-17 11:56:38
【问题描述】:
如何就地过滤 Lua 数组?
例如,有一个{ 1, 5, 7 } 的数组和一个函数function(elem) return elem > 1 end,就地过滤函数应该将数组更改为{ 5, 7 }。还希望不要破坏数组上的ipairs 迭代,因此数组仍应以索引1 开头。
“数组”是指 Lua 表中以键 1 开头并遍历连续整数键直到找到 nil 的部分。与 ipairs 迭代的内容相同。
【问题讨论】:
-
你的“Lua 数组”结构有点太严格了。
ipairs和#如您所描述的,在“带有序列”的 Lua 表上运行。但是,非正数和非整数键不会影响它们,因此可以在这样的表中使用。 -
你发明超抽象问题只是为了写答案吗?这对任何人都有什么用?为什么需要在原地执行此操作?
-
@TomBlodget 你可能是对的。我只是给出了最简单的定义。如果有任何其他“数组”定义的解决方案可以让
ipairs工作,那也很有趣。你知道吗,我最好从我的问题中删除数组词,只关注ipairs。谢谢。 -
@Piglet 我无法判断自己是错还是不开话题。既然我提出来了,我觉得还可以……
标签: lua