Итак, у меня есть этот метод, чтобы получить массив случайных чисел от 1 до 9, случайное число раз от 1 до 7.
let n = arc4random_uniform(7) + 1
var arr: [UInt32] = []
for _ in 0 ... n {
var temp = arc4random_uniform(9) + 1
while arr.contains(temp) {
temp = arc4random_uniform(9) + 1
}
print(temp)
arr.append(temp)
}
print(arr)
Так что получается массив вроде [1,4, 2] или [5,7,3,4,6].И у меня есть метод, чтобы превратить другой массив строк в нумерованный словарь.
var someArray: [String] = ["War", "Peanuts", "Cats", "Dogs", "Nova", "Bears", "Pigs", "Packers", "Mango", "Turkey"]
extension Collection {
var indexedDictionary: [Int: Element] {
return enumerated().reduce(into: [:]) { $0[$1.offset] = $1.element }
}
}
let dict1 = someArray.indexedDictionary
print(dict1)
давая мне индексированный словарь
[1:"War", 2:"Peanuts",..etc]
МОЙ вопрос заключается в использовании Ints из случайного массива каксоздать новый словарь, который включает только эти ключи и их значения?
Так, например, если arr = [3,1,5]
как мне получить новый словарь
[3:"dogs", 1:"Peanuts",5:"Bears"].