Swift 数组之基本操作

假如有如下数组变量:

var numbers = [1,2,3,4,5]
var vowels = ["A","E","I","O","U"]
var emptyArray = [Int]()

数组查找

获取数组元素个数

vowels.count

判断数组是否为空

numbers.isEmpty
emptyArray.isEmpty

获取数组元素

vowels[1] // E

获取数组中第一个元素,返回的是可选型

vowels.first // A

获取数组中最后一个元素,返回可选型

vowels.last // U 或者 vowels[ vowels.count - 1 ]
emptyArray.first // nil

if let firstVowel = vowels.first{
    "The first vowel is " + firstVowel
}

获取最小,最大值

numbers.min() // 1
vowels.max() // U

使用范围获取数组的子数组

numbers[2..<4]
numbers[2..<numbers.count]

判断某个数组是否包含某个值(返回布尔类型)

vowels.contains("A") // true
vowels.contains("B") // false

遍历数组

普通遍历数据方式

for number in numbers{
    number
}
// 想当于
for index in 0..<numbers.count{
    numbers[index]
}

遍历数组同时获取数组的索引

for (index , value) in vowels.enumerated() {
    print("\(index+1) : \(value)")
}

数组的比较(比较的是值)

var oneToFive = [1, 2, 3, 4, 5]
numbers == oneToFive // true

var oneToFive2 = [1, 2, 4, 3, 5]
numbers == oneToFive2 // false

数组的增删改操作

假如有如下数组变量。

var list = ["Apple", "Orange"]

新增

新增数组元素

下面列举一些新增数组元素的方法。

list.append("Pear")

list += ["Banner"] // 使用 += 的方式添加数组元素必须添加的是一个数组,并且数组中的类型要与之前的一直,比如这里的字符串

list = list + ["Watermelon","Grape"]

list // ["Apple", "Orange", "Pear", "Banner", "Watermelon", "Grape"]

新增数组单元到指定索引处

在Swift中可以很方便的将元素添加到某个索引值的位置,换言之填写的索引为新增的元素所在的索引位置。

list.insert("Cantaloupe", at: 2)
list // ["Apple", "Orange", "Cantaloupe", "Pear", "Banner", "Watermelon", "Grape"]

注意:小心数组越界的问题。

删除元素

删除第一个元素

快速删除数组的第一个元素。

list.removeFirst()
list // ["Orange", "Cantaloupe", "Pear", "Banner", "Watermelon", "Grape"]

删除最后一个元素

快速删除数组的最后一个元素

list.removeLast()
list // ["Orange", "Cantaloupe", "Pear", "Banner", "Watermelon"]

根据索引删除数组单元

list.remove(at: 1)
list // ["Orange", "Pear", "Banner", "Watermelon"]

注意:小心数组越界的问题。

根据范围删除数组单元

list.removeSubrange(0..<2)
list // ["Banner", "Watermelon"]

注意:小心数组越界的问题。

删除所有数组单元

list.removeAll()
list // []

修改

修改具体元素

list = ["Apple","Orange","Pear","Watermelon"]
list[0] = "Banner"
print(list) // ["Banner", "Orange", "Pear", "Watermelon"]

根据区间范围修改元素

先获取元素的值然后进行赋值修改。

list[1...2] = ["Cantaloupe","Grape"]
print( list ) // ["Banner", "Cantaloupe", "Grape", "Watermelon"]

修改范围

list[1...3] = ["Grape"]
print( list ) // ["Banner", "Grape"]

无论是使用索引还是使用区间修改数组,都可能产生数组越界的问题。

其他操作

filter

filter(includeElement: (T) -> Bool) -> [T]

let bigNumbers = [2, 47, 118, 5, 9].filter({ $0 > 20 }) // bigNumbers = [47, 118]

map

map(transform: (T) -> U) -> U

let stringified; [String] = [1, 2, 3].map({ String($0) }) // ["1", "2", "3"]

refuce

reduce(initial: U, combine: (U, T) -> U) -> U

let sum: Int = [1, 2, 3].reduce(0){ $0 + $1} // add up the numbers in the Array.
let sum = [1, 2, 3].reduce(0, +) // some thing because `+` is a function in Swift.
Copyright © http://blog.webfsd.com 2017 all right reserved,powered by Gitbook该文件修订时间: 2018-01-02 01:37:26

results matching ""

    No results matching ""