配列をsortで並び替える[数字]
countという配列を昇順で並び替えるためには、sortを使います。
var count = [1,4,8,3,2]
print(count)
count.sort()
print(count)
結果
[1, 4, 8, 3, 2]
[1, 2, 3, 4, 8]
昇順で並び替えられてますね!
降順で並び替えるには,sort(by: >) を使います。
var count = [1,4,8,3,2]
print(count)
count.sort(by: >)
print(count)
結果
[1, 4, 8, 3, 2]
[8, 4, 3, 2, 1]
配列をsortで並び替える[文字列]
アルファベットの時
var alpha = ["Aomori","Oosaka","Gihu","Tokyo","Fukuoka","Okinawa"]
print(alpha)
alpha.sort()
print(alpha)
結果
["Aomori", "Oosaka", "Gihu", "Tokyo", "Fukuoka", "Okinawa"]
["Aomori", "Fukuoka", "Gihu", "Okinawa", "Oosaka", "Tokyo"]
アルファベットの時は、ソートするとアルファベット順になりますね!
かなのとき
var kana = ["あおもり","おおさか","ぎふ","とうきょう","ふくおか","おきなわ"]
print(kana)
kana.sort()
print(kana)
結果
["あおもり", "おおさか", "ぎふ", "とうきょう", "ふくおか", "おきなわ"]
["あおもり", "おおさか", "おきなわ", "ぎふ", "とうきょう", "ふくおか"]
かなのときは50音順になりますね!
漢字の時
var prefecture = ["青森","大阪","沖縄","岐阜","東京","福岡"]
print(prefecture)
prefecture.sort()
print(prefecture)
結果
["青森", "大阪", "沖縄", "岐阜", "東京", "福岡"]
["大阪", "岐阜", "東京", "沖縄", "福岡", "青森"]
漢字の時はよくわからない順番になります。。。何か理由があるのでしょうか。。。?
構造体を配列にしたとき、並び替える方法
struct Anime {
var title: String
var date: Int
}
var animes = [
Anime(title: "ヴァイオレットエヴァーガーデン", date: 2012),
Anime(title: "るろうに剣心", date: 1996),
Anime(title: "薬屋のひとりごと", date: 2023),
Anime(title: "会長はメイド様", date: 2010),
]
このようなアニメのデータがあったとします。
これをdate 順で並び替えたいとします。
その時には、sort(by を使います。
animes.sort(by: {$0.date < $1.date})
並び替えたい要素であるdateを入れます。
for data in animes {
print("タイトル: \(data.title), 公開年: \(data.date)")
}
結果
タイトル: るろうに剣心, 公開年: 1996
タイトル: 会長はメイド様, 公開年: 2010
タイトル: ヴァイオレットエヴァーガーデン, 公開年: 2012
タイトル: 薬屋のひとりごと, 公開年: 2023
このように、データをdate順に並び替えることができます!