var array = [0, 1, 2, 3, 4, 5, 6, 7, 8]
1. 特殊属性
// 数组容量
let capacity = array.capacity
// 元素个数
let count = array.count
// 数组是否为空
let isEmpty = array.isEmpty
// 请摒弃 普通的判空条件 array.count == 0
2. swapAt: 交换指定下标的元素
// 交换第0个元素和最后一个元素位置
array.swapAt(0, array.count - 1)
print("array = \(array)")
log 结果: [8, 1, 2, 3, 4, 5, 6, 7, 0]
3. joined: 直译: 加入, 行为可理解为合并转换
// 将所有元素拿出来组成一个字符串
let elementString = array.joined()
print("elementString = \(elementString)")
log 结果: "012345678"
// 将所有元素组成一个字符串, 并且每两个元素中间加入'-', 返回一个字符串
let elementString = array.joined(separator: "-")
print("elementString = \(elementString)")
log 结果: "0-1-2-3-4-5-6-7-8"
4. pop: 弹出, 返回
// 返回最后一个元素, 返回值为可选类型
let element = array.popLast()
5. shuffle: 重排, 打乱顺序
// 将数组现有元素重新随机排列, 改变原数组, 无返回值
array.shuffle()
6. map: 转换
// 将[Int]类型的数组转换为[String]
let array = [0, 1, 2, 3, 4, 5]
let newArray = array.map { (value) -> String in
return "\(value)"
}
// 或者这样写:
let newArray = array.map { "\($0)" }
print("newArray = \(newArray)")
log 结果: ["0", "1", "2", "3", "4", "5"]
7. compactMap: 对比map
// 将以下数组的元素转换为整形 亦即: [Int]
let array = ["0", "one", "2", "three", "4", "five"]
// 1.map 不会过滤nil值
let newArray = array.map { Int($0) }
print(newArray)
log 结果: [Optional(0), nil, Optional(2), nil, Optional(4), nil]
// 2. compactMap 会过滤nil值
let newArray = array.compactMap { Int($0) }
print(newArray)
log 结果: [0, 2, 4]
8. filter: 筛选
let array = [0, 1, 2, 3, 4, 5]
let newArray = array.filter { (value) -> Bool in
value > 2
}
// 或者这样写
let newArray = array.filter { $0 > 2 }
print(newArray)
log 结果: [3, 4, 5]
9. 排序:
// 1. sorted(): array 可以是let和var, 有返回值, 不改变原数组
let array = [8, 0, 1, 2, 3, 4, 5]
// 1.1 升序:
let newArray = array.sorted()
print(newArray)
log 结果: [0, 1, 2, 3, 4, 5, 8]
// 1.2 按条件排序, 降序
let newArray = array.sorted { (value1, value2) -> Bool in
value1 > value2
}
// 简写
let newArray = array.sorted { $0 > $1 }
print(newArray)
log 结果: [8, 5, 4, 3, 2, 1, 0]
// 2.sort(): array 必须是变量var, 无返回值, 改变原数组
var array = [8, 0, 1, 2, 3, 4, 5]
// 2.1 升序
array.sort()
print(array)
log 结果: [0, 1, 2, 3, 4, 5, 8]
// 2.2 按条件排序, 降序
array.sort { (value1, value2) -> Bool in
value1 > value2
}
// 简写
array.sort { $0 > $1 }
print(array)
log 结果: [8, 5, 4, 3, 2, 1, 0]
10. contains: 包含
// 数组中是否包含某个元素, 返回Bool
let contains = array.contains(3)
// 数组中是否包含符合条件的值, 返回Bool
let contains = array.contains { (value) -> Bool in
value > 0
}
11. split: 切片
var array = [1, 2, 3, 4, 5, 6, 7, 8]
// 以元素3为分界点, 将数组分割成两个数组
let newArray = array.split(separator: 3)
print(newArray)
log 结果:
[ArraySlice([1, 2]), ArraySlice([4, 5, 6, 7, 8])]
两个数组: [1, 2],[4, 5, 6, 7, 8]
持续补充...
网友评论