我有一个像这样的对象数组:
var myArr = [
MyObject(name: "Abc", description: "Lorem ipsum 1."),
MyObject(name: "Def", description: "Lorem ipsum 2."),
MyObject(name: "Xyz", description: "Lorem ipsum 3.")
]
我知道我可以像这样找到匹配的项: ```html
我知道我可以像这样找到匹配的项:
```var temp = myArr.filter { $0.name == "Def" }.first
但现在我该如何从原始的myArr
中删除它?我希望filter.first
可以以某种方式返回索引,这样我就可以使用removeAtIndex
。更好的是,我想做这样的事情:
myArr.removeAll { $0.name == "Def" } // Pseudo
有什么想法吗?
myArr = myArr.filter { $0.name != "Def" }
有什么问题吗? - mattmyArr
变量。 - TruMan1myArr
仍然是myArr
。而且这是一个值类型;你不能在原地改变它!即使你编写了一个可变的removeAll
方法,你也总是会创建一个新的数组。 - mattremoveAll()
的实现:http://codereview.stackexchange.com/questions/86581/removeallclosure-in-swift。 - Martin R