我有對象的一個這樣的數組:從對象數組中刪除匹配的項目?
var myArr = [
MyObject(name: "Abc", description: "Lorem ipsum 1."),
MyObject(name: "Def", description: "Lorem ipsum 2."),
MyObject(name: "Xyz", description: "Lorem ipsum 3.")
]
我知道我能找到這樣的匹配項:
var temp = myArr.filter { $0.name == "Def" }.first
但是現在我如何從原來的myArr
去除呢?我希望filter.first
可以返回索引,所以我可以使用removeAtIndex
。或者更好的是,我想這樣做:
myArr.removeAll { $0.name == "Def" } // Pseudo
任何想法?
'myArr = myArr.filter {$ 0.name!=「Def」}''有什麼問題? – matt
因爲這迫使我創建一個新的變量。我想修改現有的'myArr'變量。 – TruMan1
不,它不。 'myArr'仍然是'myArr'。這是一種價值類型;你不能改變它!即使你寫了一個突變的removeAll方法,你也會創建一個新的數組。 – matt