我有一个包含很多元素的数组。我想通过值而不是键来删除元素。看来你必须这样做:
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中有没有相同的内容?在我看来,过滤器检查每个元素,所以我觉得必须有一个更快的方法。如果你使用字典,那还好吗?
答案 0 :(得分:0)
我认为filter
是您的最佳选择。您也可以按index
删除该元素,但我仍然会使用filter
方法:
过滤器:
array = array.filter() { $0 !== value }
按索引删除:
if let index = array.index(where: { $0 == value }) {
array.remove(at: index)
}