1. 遍历所有元素
// 基础遍历所有元素
for item in array {
print("item = \(item)")
}
2. enumerated: 遍历数组的下标和元素
for (index, item) in array.enumerated() {
print("item = \(item)")
print("index = \(index)")
}
3. reversed: 逆序遍历
for item in array.reversed() {
print("item = \(item)")
}
4. reversed&enumerated: 逆序+遍历元素和下标
let array = [0, 1, 2, 3, 4, 5]
for (index, value) in array.reversed().enumerated() {
print("index = \(index) : value = \(value)")
}
// 或者使用
for item in array.enumerated().reversed() {
print("index = \(item.offset) : value = \(item.element)")
}
log 结果:
index = 0 : value = 5
index = 1 : value = 4
index = 2 : value = 3
index = 3 : value = 2
index = 4 : value = 1
index = 5 : value = 0
5. enumerated&reversed: 遍历元素和下标+逆序
let array = [0, 1, 2, 3, 4, 5]
for (index, value) in array.enumerated().reversed() {
print("index = \(index) : value = \(value)")
}
或者使用
for item in array.enumerated().reversed() {
print("index = \(item.offset) : value = \(item.element)")
}
log 结果:
index = 5 : value = 5
index = 4 : value = 4
index = 3 : value = 3
index = 2 : value = 2
index = 1 : value = 1
index = 0 : value = 0
// 注意对比 4 和 5 的log 结果
6. 默认遍历出的元素是常量, 亦即 let, 想要遍历并更改元素:
不建议这样使用, 建议map
let array = [0, 1, 2, 3, 4, 5]
var temp: [Int] = []
for var item in array {
item = 100
temp.append(item)
}
print("temp = \(temp)")
log 结果: [100, 100, 100, 100, 100, 100]
7. 遍历符合条件的元素
// 遍历值大于2 的元素
for item in array where item > 2 {
print("item = \(item)")
}
// 遍历下标大于2 的元素
for item in array.enumerated() where item.offset > 2 {
print("item = \(item)")
}
// 结合2 & 3 可以试试另一种写法
8. forEach: 遍历
// 普通
array.forEach { (value) in
print("value = \(value)")
}
// 遍历下标和元素
array.enumerated().forEach { (item) in
print("index = \(item.offset) : value = \(item.element)")
}
// 逆序遍历
array.reversed().forEach { (value) in
print("value = \(value)")
}
网友评论