使用 filter 方法
filter 方法允许你根据一个条件过滤数组中的元素。它返回一个包含所有满足条件的元素的新数组。
let numbers = [1, 2, 3, 4, 5, 6]
let evenNumbers = numbers.filter { $0 % 2 == 0 }
print(evenNumbers) // 输出: [2, 4, 6]
使用 compactMap 方法
如果你需要过滤并转换数组中的元素,可以使用 compactMap。它类似于 map 方法,但是它会移除任何 nil 值。
let strings = ["1", "two", "3", "four", "5"]
let numbersFromString = strings.compactMap { Int($0) }
print(numbersFromString) // 输出: [1, 3, 5]
map
不改变原数组
let numbers = [1, 2, 3, 4, 5]
let doubledNumbers = numbers.map { $0 * 2 }
print(doubledNumbers) // 输出: [2, 4, 6, 8, 10]
使用 flatMap 方法
flatMap 方法通常用于处理嵌套数组,但也可以用来过滤数组。它首先将每个元素映射到一个新数组,然后扁平化这些数组。
let numbers = [1, 2, 3, 4, 5, 6]
let evenNumbersFlatMap = numbers.flatMap { $0 % 2 == 0 ? [$0] : [] }
print(evenNumbersFlatMap) // 输出: [2, 4, 6]
使用 remove(where:) 方法
如果你只是想从数组中移除满足条件的元素,而不是创建一个新的数组,可以使用 remove(where:) 方法。
var numbers = [1, 2, 3, 4, 5, 6]
numbers.removeAll(where: { $0 % 2 != 0 })
print(numbers) // 输出: [2, 4, 6]
使用 removeAll 方法(不带条件)
如果你想移除数组中的所有元素,可以使用 removeAll 方法。
var numbers = [1, 2, 3, 4, 5, 6]
numbers.removeAll()
print(numbers) // 输出: []