美文网首页
[4] 删除数组中特定元素

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

作者: coderzcj | 来源:发表于2017-09-21 10:09 被阅读10次

    问题描述:

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

    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]
    

    相关文章

      网友评论

          本文标题:[4] 删除数组中特定元素

          本文链接:https://www.haomeiwen.com/subject/jlhzsxtx.html