我有以下兩個數組:斯威夫特陣元組的陣
let xaxis = ["monday", "tuesday", "wednesday", "thursday", "friday"]
let yaxis = [1, 2, 3, 4, 5]
我想將它們合併到一個數組,看起來像這樣:
[ ("monday", 1), ("tuesday", 2), ("wednesday", 3), ("thursday", 4), ("friday", 5)]
我有以下兩個數組:斯威夫特陣元組的陣
let xaxis = ["monday", "tuesday", "wednesday", "thursday", "friday"]
let yaxis = [1, 2, 3, 4, 5]
我想將它們合併到一個數組,看起來像這樣:
[ ("monday", 1), ("tuesday", 2), ("wednesday", 3), ("thursday", 4), ("friday", 5)]
使用zip
和map
:
let xaxis = ["monday", "tuesday", "wednesday", "thursday", "friday"]
let yaxis = [1, 2, 3, 4, 5]
let tuples = zip(xaxis, yaxis).map { ($0, $1) }
與簡單的循環相比,這些方法速度更快,請給出您的建議 – 3stud1ant3
以上是我的建議。避免過早優化。始終使用最簡潔,最具表現力的語法,不要擔心優化,除非它可能會產生重大影響。性能差異與5個項目無法區分。而在發佈版本時幾乎不存在。所有這些都說過了,我想知道你爲什麼使用元組。或者你爲什麼使用一個字符串文本數組,而不是'Calendar.current.weekdaySymbols'。在花費第二次考慮用'for for循環替換'zip' /'map'之前,我會擔心很多事情。 – Rob
我用這兩個數組作爲例子,但真正的應用程序將不會有數月或任何日曆數據在數組中。我只想要一個如何將兩個數組(一個字符串和一個int類型)轉換爲一個元組數組的例子。 – Martheli
試試這個:
let xaxis = ["monday", "tuesday", "wednesday", "thursday", "friday"]
let yaxis = [1, 2, 3, 4, 5]
var newArr = [(String, Int)]()
for i in 0..<xaxis.count {
newArr.append((xaxis[i], yaxis[i]))
}
print(newArr)
這使得沒有使用' yaxis'數組。 – rmaddy
@rmaddy更新了答案,謝謝 – 3stud1ant3
試試這個:
let arrayMerged = zip(xaxis, yaxis).map { ($0, $1) }
或本:
let arrayMerged = Array(zip(xaxis, yaxis))
@rmaddy編輯。提前錯過了元組部分。 – nayem
這不是一本字典,你都出現了,它的元組的數組 – 3stud1ant3
更新的問題 – Martheli