Swift学习之关于Array的方法

2018-08-12  本文已影响0人  煎包小混沌
基本方法
var array = [1,2,3,4,5]
//insert插入
array.insert(10, at: 1)   
//remove移除
array.remove(at: 2)
//append添加
array.append(3)
//下标替换
array[0] = 11

一:filter:过滤数组中不满足条件的元素,返回满足条件的元素组成的数组

筛选数组元素
var array = [1,2,3,4,5]
let filterAry = array.filter { $0 > 3 }
//$0代表array中的元素
//返回大于3的元素组成的数组
print(filterAry)
//打印
[4, 5]

二:map:将原来数组中的元素映射到新的数组中

映射数组元素(可转化元素类型)
var array = [1,2,3,4,5]
let mapAry = array.map { (a) -> String in
    return "\(a)" + "b"
}
//映射成字符串类型
print(mapAry)
//打印
["1b", "2b", "3b", "4b", "5b"]

三:flatMap:检查数组中有没有嵌套数组,把嵌套的数据解构再重组成一个数组

将嵌套数组,解构成一个非嵌套数组
var array = [ [1] , [2], [3], [4], [5]]
let flatMapArray = array.flatMap{ $0 }
//解套
print(flatMapArray)
//打印
[1, 2, 3, 4, 5]

三点一:compactMap:过滤数组中出现的nil和可选类型

var array: [Int?] = [1, 2, 3, 4, nil, 5]
print(array)
let compactMapAry = array.compactMap { (a) -> Int? in
    a
}
print(compactMapAry)
//打印
[Optional(1), Optional(2), Optional(3), Optional(4), nil, Optional(5)]
[1, 2, 3, 4, 5]

四:reduce:可以把数组变成一个元素,首先需要指定一个初始值,然后在闭包中写一个reduce的规则,接着reduce方法会开始递归的对数组中的元素进行闭包运算,直到算出最后一个结果。

将数组变成一个元素
var array = [1,2,3,4,5]
//let reduce = array.reduce("a"){ "\($0)" + "\($1)" }
let reduce = array.reduce("a") { (a1, a2) -> String in
    return "\(a1)" + "\(a2)"
}
//上面的写法是简写
print(reduce)
//打印
a12345

五:sorted:排序

var array = [2,6,1,4,5]
//let sortAry = array.sorted()
let sortAry = array.sorted { (a1, a2) -> Bool in
    return a1 < a2
}
print(sortAry)
//打印
[1, 2, 4, 5, 6]

六:forEach:函数是遍历方法,符合函数式变成的规范。

注意,在forEach闭包中,return不会中断整个遍历
var array = [1,2,3,4,5]
array.forEach { (a1) in
    if a1 == 3 {
        return
    }
    print(a1)
}
//打印
1
2
4
5

七:contains:判断数组中是否包含指定元素,存在则返回true

判断数组中是否包含指定元素
var array = [1,2,3,4,5]
let isContains = array.contains(2)
print(isContains)
//打印
true

八:indexOf:判断数组中是否包含指定元素,存在则返回元素在数组中的下标,否则返回nil

判断数组中是否包含指定元素
var array = [1,2,3,4,5]
let isIndexOf = array.index(of: 3)
print(isIndexOf)
//打印
Optional(2)

九:prefix、suffix:获取数组从头或从尾开始的一段片段

截取片段
var array = [1,2,3,4,5]
let prefixAry = array.prefix(upTo: 2)
let 
print(prefixAry)
//打印
[1, 2]

let suffixAry = array.suffix(from: 2)
print(suffixAry)
//打印
[3, 4, 5]

十:dropFirst、dropLast:与prefix、suffix互补的方法,获取去掉头或者尾的某片段

截取片段
var array = [1,2,3,4,5]
let dropFirstAry = array.dropFirst(2)
print(dropFirstAry)
//dropFirst(2):从头到第二个元素为止
//打印
[3, 4, 5]

let dropLast = array.dropLast(2)
print(dropLast)
//dropLast(2):从尾到第二个元素为止
//打印
[1, 2, 3]

十一:带下标的数组遍历

var array = [1,2,3,4,5]
for (i, temp) in array.enumerated() {
    print(i, temp)
}
//打印
0 1
1 2
2 3
3 4
4 5
上一篇下一篇

猜你喜欢

热点阅读