前言:
最近查看Swift数组的相关函数,感觉自己老是忘记,记录一下,毕竟好记性不如烂笔头吗😊
数组添加某一个值
var array = ["1","2","3","4","5"]
//打印参数类型type(of:参数)
print("array返回的类型是:--->\(type(of: array))");
print("array=\(array)");
//数组添加某一个值,在最后一位
array.append("6")
print("array=\(array)");
//向数组下标为2的地方插入一个元素
array.insert("7", at: 2)
print("array=\(array)");
let newArray = ["11","22","33","44","55"]
//向数组末尾插入数组
array.append(contentsOf: newArray)
print("arradd=\(array)");
let newArray1 = ["hello","word","Swift","OC","C"]
//向数组下标为4的地方插入一个数组
array.insert(contentsOf: newArray1, at: 4)
print("arradd=\(array)");
打印结果:
数组删除某一个值
//根据下标移除元素
array.remove(at: 2)
print("arrdelete=\(array)");
//移除数组中第一个元素
array.removeFirst()
print("arrdelete=\(array)");
//移除数组中最后一个元素
array.removeLast()
print("arrdelete=\(array)");
//移除数组中前3个元素
array.removeFirst(3)
print("arrdelete=\(array)");
//移除数组中后2个元素
array.removeLast(2)
print("arrdelete=\(array)");
//移除数组中所有元素
array.removeAll()
print("arrdelete=\(array)");
打印结果:
获取指定位置数据
print("array第一个元素=\(array.first!)")//获取素组中第一个元素
print("array最后一个元素=\(array.last!)")//获取数组中最后一个元素
print("array下标为5的元素=\(array[5])")//获取数组中下标为5的元素
打印结果:
数组遍历
for - in
for item in array{
print("for-in值为:\(item)");
}
打印结果:
下标方式
for index in 0..<array.count {
print("下标为:\(index) 值为:\(array[index])");
}
打印结果:
reversed反向遍历
for item in array.reversed() {
print("反向:item =\(item)");
}
打印结果:
内容和下标enumerated
for item in array.enumerated(){
print("item下标为:\(item.offset) item值为:\(item.element)");
}
for (index,item) in array.enumerated(){
print("值为:\(item) 下标为:\(index)");
}
打印结果:
map方式
let _ = array.map { (item) in
print("map值为:\(item)");
}
打印结果:
forEach方式
array.forEach { (item) in
print("forEach值为:\(item)");
}
打印结果:
跨步打印
for index in stride(from: array.startIndex, to: array.endIndex, by: 2) {
print("跨步index = \(array[index])");
}
打印结果:
filter按条件筛选
let array1:[Int] = [1,2,3,4,5]
let result = array1.filter { (item) -> Bool in
return item > 3
}
print("值为:\(result)");
打印结果:
数组扩展
extension Array where Element: Equatable {
//获取数组中的指定元素的索引值
//Parameter item: 元素
//Returns: 索引值数组
public func indexes(_ item: Element) -> [Int] {
var indexes = [Int]()
for index in 0..<count where self[index] == item {
indexes.append(index)
}
return indexes
}
//获取元素首次出现的位置
//Parameter item: 元素
//Returns: 索引值
public func firstIndex(_ item: Element) -> Int? {
for (index, value) in lazy.enumerated() where value == item {
return index
}
return nil
}
//获取元素最后出现的位置
//Parameter item: 元素
//Returns: 索引值
public func lastIndex(_ item: Element) -> Int? {
return indexes(item).last
}
//删除数组中的指定元素
//Parameter object: 元素
public mutating func remove(_ object:Element) -> Void {
for index in self.indexes(object).reversed() {
self.remove(at: index)
}
}
}
暂时到这吧,以后再补充扩展