Swift:从数组中删除特定对象的更好方法?
我试图通过代码提高效率,但是我却放屁了。我编写的这段代码很好用,并且完全满足我的需要:它检查一个数组并删除一个未知索引处的Object。但是我觉得有一种更好,更有效的编写方法。我去了Array.remove(at
:),但这需要一个已知的索引。我正在使用大的O表示法,并且不知道如何使它更易于处理。有任何想法吗?
// create a new object array var sort : [MyCustomObject] = []
//iterate through my object array
for i in objectArray{
if i === objectToRemove{
}
else{
sort.append(i)
}
}
// set old array to sort, which no longer has the unwanted object
self.objectArray = sort
回答:
使用firstIndex(where:)
(index(where:)
在
和更早版本中先前称为)使用谓词在数组中搜索对象{ $0 === objectToRemove
},然后调用remove(at:)
该数组将其删除:
if let idx = objectArray.firstIndex(where: { $0 === objectToRemove }) { objectArray.remove(at: idx)
}
这使您可以搜索对象是否Equatable
存在。
以上是 Swift:从数组中删除特定对象的更好方法? 的全部内容, 来源链接: utcz.com/qa/405441.html