從數組中刪除指定元素

在數組中刪除數據時,數組的序號會發生改變,以下方法實現了 刪除數組中指定值的所有條目。


//獲取正確的刪除索引

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)

    }

    

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章