背景
熟悉基本语法,第一个答案给的很简洁,学习学习
答案
let string = "helloworld"
let newString = string.enumerated().filter({ $0.0 % 2 != 0 }).map({ String($0.element) }).joined()
1.enumerated
和for in结合起来做遍历
let string = "helloworld"
for element in string.enumerated() {
print(element)
}
可以得到的元组(offset, element)
(offset: 0, element: "h")
(offset: 1, element: "e")
(offset: 2, element: "l")
(offset: 3, element: "l")
(offset: 4, element: "o")
(offset: 5, element: "w")
(offset: 6, element: "o")
(offset: 7, element: "r")
(offset: 8, element: "l")
(offset: 9, element: "d")
2.filter
过滤出奇数位置的数组,每个元素也是元组(offset, element)
简写$0= 元组(offset, element),
$0.0 = 元组.offset,
$0.1 = 元组.element
let element = string.enumerated().filter({ $0.0 % 2 != 0})
print(element)
打印
[
(offset: 1, element: "e"),
(offset: 3, element: "l"),
(offset: 5, element: "w"),
(offset: 7, element: "r"),
(offset: 9, element: "d")]
3.map
相当于重新对每个元素做改造,现在每个数组元素是元组,先把每个元素改造成字符串
let element = string.enumerated().filter({ $0.0 % 2 != 0}).map({ String($0.element) })
// 或 string.enumerated().filter({ $0.0 % 2 != 0}).map({ String($0.1) })
print(element)
打印
["e", "l", "w", "r", "d"]
4. joined
将数组的每个元素连接在一起
let element = string.enumerated().filter({ $0.0 % 2 != 0}).map({ String($0.1) }).joined()
print(element)
打印
elwrd