从数组中删除指定元素

在数组中删除数据时,数组的序号会发生改变,以下方法实现了 删除数组中指定值的所有条目。


//获取正确的删除索引

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)

    }

    

}



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