在數組中刪除數據時,數組的序號會發生改變,以下方法實現了 刪除數組中指定值的所有條目。
//獲取正確的刪除索引
func getRemoveIndex<T: Equatable>(value: T, array: [T]) -> [Int]{
var indexArray = [Int]()
var correctArray = [Int]()
//獲取指定值在數組中的索引
for (index,_) in enumerate(array) {
if array[index] == value {
indexArray.append(index)
}
}
//計算正確的刪除索引
for (index, originIndex) in enumerate(indexArray){
//指定值索引減去索引數組的索引
var correctIndex = originIndex - index
//添加到正確的索引數組中
correctArray.append(correctIndex)
}
return correctArray
}
//從數組中刪除指定元素
func removeValueFromArray<T: Equatable>(value: T, inout array: [T]){
var correctArray = getRemoveIndex(value, array)
//從原數組中刪除指定元素
for index in correctArray{
array.removeAtIndex(index)
}
}