import Foundation
extension Array where Element: Equatable {
/// [Array + extension] 引数のElementを削除する、削除の成功失敗をBoolで返す
mutating func e_remove(element element: Element) -> Bool {
guard let index = indexOf(element) else { return false }
removeAtIndex(index)
return true
}
/// [Array + extension] 引数のElementsを配列から削除する
mutating func e_remove(elements elements: [Element]) {
for element in elements {
e_remove(element: element)
}
}
}
// Array自身を書き換える
var intArray = [1, 2, 3, 4, 5]
intArray.e_remove(element: 2)
//=> [1, 3, 4, 5]
intArray.e_remove(elements: [2, 5])
//=> [1, 3]
★ 配列の中の要素を入れ替える
extension Array {
mutating func arraySwapIndex(index1 index1: Int, index2: Int) {
swap(&self[index1], &self[index2])
}
}
var dic: [String] = ["a", "b", "c"]
dic.arraySwap(index1: 1, index2: 2)
dic
//=> ["a", "c", "b"]