【发布时间】:2019-11-13 06:48:53
【问题描述】:
适用于 SWIFT 5.1
如何让字符串数组与整数数组合并?
stringArray: ["Tom", "Dick", "Harry"]
intArray: [ 1, 2, 3]
我正在寻找的结果是一个格式为 String:Int 的列表
汤姆:1
迪克:2
哈利:3
【问题讨论】:
标签: arrays swift array-merge
适用于 SWIFT 5.1
如何让字符串数组与整数数组合并?
stringArray: ["Tom", "Dick", "Harry"]
intArray: [ 1, 2, 3]
我正在寻找的结果是一个格式为 String:Int 的列表
汤姆:1
迪克:2
哈利:3
【问题讨论】:
标签: arrays swift array-merge
要实现这一点,您必须链接一些很棒的高阶函数,如下所示:
let name = ["Tom", "Dick", "Harry"]
let id = [ 1, 2, 3]
let dict = zip(name, id).map { [$0.0 : $0.1] }
.reduce([:]) { $0.merging($1) { (current, _) in current } }
print(dict)
【讨论】:
init(uniqueKeysWithValues:) 或init(_:uniquingKeysWith:) 进行简化。
reduce(into:_) 可以更有效地进行缩减
可以这样做:
var intOne: [Int] = [1, 2, 3, 4]
var stringArray: [String] = ["a","b","c","d"]
var dictionary: [Int: String] = [:]
for (index, element) in intOne.enumerated() {
dictionary[element] = stringArray[index]
}
print(dictionary)
Output: [2: "b", 3: "c", 1: "a", 4: "d"]
extension Dictionary {
public init(keys: [Key], values: [Value]) {
precondition(keys.count == values.count)
self.init()
for (index, key) in keys.enumerated() {
self[key] = values[index]
}
}
}
【讨论】: