Swift:像Lua一样快速从数组中删除元素

时间:2017-06-20 05:31:07

标签: ios arrays swift lua

我有一个包含很多元素的数组。我想通过值而不是键来删除元素。看来你必须这样做:

array = array.filter() { $0 !== value }

对于我来自Lua背景,这似乎有点等同于这个Lua代码:

for k,v in pairs(array) do
    if v == value then table.remove(array, k) end
end

这是一种缓慢的方法,Lua中更快的方法是将键设置为值:

array = {[value] = "something"}
array[value] = nil

Swift中有没有相同的内容?在我看来,过滤器检查每个元素,所以我觉得必须有一个更快的方法。如果你使用字典,那还好吗?

1 个答案:

答案 0 :(得分:0)

我认为filter是您的最佳选择。您也可以按index删除该元素,但我仍然会使用filter方法:

过滤器:

array = array.filter() { $0 !== value }

按索引删除:

if let index = array.index(where: { $0 == value }) {
    array.remove(at: index)
}