美文网首页iOS逆向
Swift数组处理全解(一篇全部搞定)

Swift数组处理全解(一篇全部搞定)

作者: 山水域 | 来源:发表于2023-03-08 10:06 被阅读0次
    1. 定义数组:使用语法 [元素类型] 来定义数组,例如:
    
    var arr1 = [1, 2, 3]
    var arr2: [String] = ["apple", "banana", "pear"]
    
    
    1. 访问数组元素:可以使用下标(从 0 开始)或者循环遍历数组来访问其中的元素。
    
    let arr = ["apple", "banana", "pear"]
    let first = arr[0] // "apple"
    print(first)
    
    for item in arr {
        print(item)
    }
    
    
    1. 操作数组元素:可以使用 append、insert、remove 等方法来操作数组元素。
    
    var arr = [1, 2, 3]
    arr.append(4) // [1, 2, 3, 4]
    arr.insert(0, at: 0) // [0, 1, 2, 3, 4]
    arr.remove(at: 2) // [0, 1, 3, 4]
    
    
    1. 数组切片:可以使用数组的 suffix、prefix、dropdropLast 等方法获取其子数组。
    
    let arr = [1, 2, 3, 4, 5]
    let subset1 = arr.suffix(3) // [3, 4, 5]
    let subset2 = arr.prefix(2) // [1, 2]
    let subset3 = arr.dropFirst(2) // [3, 4, 5]
    let subset4 = arr.dropLast(1) // [1, 2, 3, 4]
    
    
    1. 数组排序:可以使用 sort、sorted、sort(by:) 等方法对数组进行排序。
    
    var arr = [4, 2, 1, 3, 5]
    arr.sort() // [1, 2, 3, 4, 5]
    
    var arr2 = [4, 2, 1, 3, 5]
    let sortedArr = arr2.sorted() // [1, 2, 3, 4, 5]
    
    var arr3 = ["apple", "banana", "pear"]
    arr3.sort(by: { $0.compare($1) == .orderedAscending })
    print(arr3) // ["apple", "banana", "pear"]
    
    
    1. 数组过滤和映射:可以使用 filter、map 等方法对数组进行过滤和映射。
    
    let arr = [1, 2, 3, 4, 5]
    let filteredArr = arr.filter { $0 % 2 == 0 } // [2, 4]
    let mappedArr = arr.map { $0 * $0 } // [1, 4, 9, 16, 25]
    
    

    列举几个常用的方法:

    1. 添加元素到数组:
    
    var array = [1, 2, 3]
    array.append(4) // [1, 2, 3, 4]
    array += [5] // [1, 2, 3, 4, 5]
    
    
    1. 获取数组元素个数:
    
    let count = array.count // 5
    
    
    1. 数组元素的遍历:
    
    for item in array {
        print(item)
    }
    
    array.forEach({ item in 
        print(item)
    })
    
    
    1. 获取数组中最大值、最小值、和:
    
    let maxNum = array.max() // 5
    let minNum = array.min() // 1
    let sum = array.reduce(0, +) // 15
    
    
    1. 数组是否包含某个元素:
    
    let contains = array.contains(2) // true
    
    
    1. 对数组进行排序:
    
    let sortedArray = array.sorted() // [1, 2, 3, 4, 5]
    
    
    1. 筛选数组元素:
    
    let filteredArray = array.filter({ $0 % 2 == 0 }) // [2, 4]
    
    
    1. 数组的删除和替换:
    
    var array = [1, 2, 3, 4, 5]
    array.remove(at: 2) // [1, 2, 4, 5]
    array[2] = 6 // [1, 2, 6, 5]
    
    
    1. 数组的插入和拼接:
    
    var array = [1, 2, 3, 4, 5]
    array.insert(6, at: 2) // [1, 2, 6, 3, 4, 5]
    let newArray = array + [7, 8] // [1, 2, 6, 3, 4, 5, 7, 8]
    
    
    1. 数组的截取:
    
    let subArray = array[1...3] // [2, 6, 3]
    
    
    1. 数组的判断输出:
    
    let isEmpty = array.isEmpty // false
    print(array) // [1, 2, 6, 3, 4, 5]
    
    
    1. 在数组中查找元素的位置:
    
    if let index = array.firstIndex(of: 2) {
        // 找到2,index为1
        print("找到2,index为\(index)")
    } else {
        // 没有找到2
        print("没有找到2")
    }
    
    
    1. 使用 map 方法对数组中的元素进行转换:
    
    let nums = [1, 2, 3, 4, 5]
    let strs = nums.map({ "Number: \($0)" })
    print(strs) // ["Number: 1", "Number: 2", "Number: 3", "Number: 4", "Number: 5"]
    
    
    1. 使用 reduce 方法计算数组中所有元素的总和:
    
    let nums = [1, 2, 3, 4, 5]
    let sum = nums.reduce(0, { $0 + $1 })
    print(sum) // 15
    
    
    1. 使用 filter 方法过滤出数组中的偶数:
    
    let nums = [1, 2, 3, 4, 5]
    let evens = nums.filter({ $0 % 2 == 0 })
    print(evens) // [2, 4]
    
    
    1. 使用 forEach 方法遍历数组中的每一个元素:
    
    let nums = [1, 2, 3, 4, 5]
    nums.forEach({ print($0) })
    // 1
    // 2
    // 3
    // 4
    // 5
    
    
    1. 移除数组中的重复元素:
    
    var nums = [1, 2, 3, 2, 4, 3, 5]
    nums = Array(Set(nums))
    print(nums) // [1, 2, 3, 4, 5]
    
    
    1. 在数组中搜索符合条件的元素:
    
    let nums = [1, 2, 3, 4, 5]
    let results = nums.enumerated().filter { $0.offset % 2 == 0 && $0.element > 2 }
    print(results) // [(2, 3)]
    
    
    1. 使用 compactMap 方法转换数组中的元素,同时过滤掉 nil:
    
    let mixed = ["1", "2", "3", "cat"]
    let nums = mixed.compactMap({ Int($0) })
    print(nums) // [1, 2, 3]
    
    
    1. 对数组进行降序排序:
    
    let nums = [1, 9, 2, 8, 3, 7, 4, 6, 5]
    let sortedNums = nums.sorted { $0 > $1 }
    print(sortedNums) // [9, 8, 7, 6, 5, 4, 3, 2, 1]
    
    
    1. 通过 dropFirst() 方法删除数组的前 n 个元素:
    
    let nums = [1, 2, 3, 4, 5]
    let tail = nums.dropFirst(2)
    print(tail) // [3, 4, 5]
    
    
    1. 通过 dropLast() 方法删除数组的后 n 个元素:
    
    let nums = [1, 2, 3, 4, 5]
    let head = nums.dropLast(2)
    print(head) // [1, 2, 3]
    
    
    1. 使用 popLast() 方法弹出数组的最后一个元素:
    
    var nums = [1, 2, 3, 4, 5]
    let last = nums.popLast()
    print(last) // 5
    print(nums) // [1, 2, 3, 4]
    
    
    1. 在数组的指定位置插入单个或多个元素:
    
    var nums = [1, 2, 3, 4, 5]
    nums.insert(0, at: 0)
    print(nums) // [0, 1, 2, 3, 4, 5]
    
    let spliceArray = [6, 7, 8]
    nums.splice(contentsOf: spliceArray, at: 3)
    // nums 现在为 [0, 1, 2, 6, 7, 8, 3, 4, 5]
    
    
    1. 先通过 firstIndex(of:) 方法找到元素在数组中的位置,然后使用 remove(at:) 方法从数组中删除该元素:
    
    var nums = [1, 2, 3, 4, 5]
    if let index = nums.firstIndex(of: 3) {
        nums.remove(at: index)
        print(nums) // [1, 2, 4, 5]
    }
    
    

    以上是 Swift 处理数组的一些方法,对于遇到的具体问题和场景,可以结合实际需要选择合适的方法。

    相关文章

      网友评论

        本文标题:Swift数组处理全解(一篇全部搞定)

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