[4] 删除数组中特定元素

问题描述:

删除数组中满足某一条件的元素。

var arr = [1, 3, 5, 7, 9, 2, 4, 6]
for (index, num) in arr.enumerated() {

    if num <= 2 {
        arr.remove(at: index)
    }
}
print(arr) // [3, 5, 7, 9, 2, 6]

上述代码的结果显然是错误的。原因是arr.enumerated() 返回了一个新的数组。

解决方案:

  1. 方案一:
var arr = [1, 3, 5, 7, 9, 2, 4, 6]
for num in arr {
    if num <= 2 {
        if let newIndex = arr.index(of: num) {
            arr.remove(at: newIndex)
        }
    }
}
print(arr) // [3, 5, 7, 9, 4, 6]
  1. 方案二:
let arr = [1, 3, 5, 7, 9, 2, 4, 6]
let newArr = arr.filter {
    return $0 > 2
}
print(newArr) // [3, 5, 7, 9, 4, 6]
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容