配列のメソッド
CoddyのSwiftジャーニー「基礎」セクションの一部 — レッスン 65/86。
要素の追加や削除以外にも、Swiftの配列にはコレクションの操作をより簡単にするための便利なメソッドがいくつか用意されています。
isEmpty プロパティは、配列に要素が含まれているかどうかを確認します:
var tasks = [String]()
print(tasks.isEmpty) // true
tasks.append("Buy groceries")
print(tasks.isEmpty) // falseすべての要素を一度に削除するには、removeAll() を使用します。
var numbers = [1, 2, 3, 4, 5]
numbers.removeAll()
print(numbers) // []reversed() メソッドは、要素を逆の順序で返します:
let letters = ["A", "B", "C"]
print(Array(letters.reversed())) // ["C", "B", "A"]ソートを行うには、sorted() を使用して新しいソート済み配列を取得するか、sort() を使用して配列をその場でソートします:
let scores = [85, 42, 97, 63]
print(scores.sorted()) // [42, 63, 85, 97]
var prices = [9.99, 2.50, 5.75]
prices.sort()
print(prices) // [2.5, 5.75, 9.99]sorted() は元の配列を変更せずに新しい配列を返しますが、sort() は元の配列を直接変更することに注意してください。
チャレンジ
簡単scores を受け取り、そのスコアに関する情報をフォーマットされた文字列として返す関数 processScores を作成してください。
この関数は配列を分析し、3つの情報を含む結果文字列を構築する必要があります。
ロジック:
isEmptyを使用して配列が空かどうかを確認します- 空の場合は、
"No scores"を返します - 空でない場合は、ソートされたスコア(昇順)と逆順に並べられたスコアを取得します
- 両方の結果を組み合わせた文字列を返します
パラメータ:
scores([Int]): 整数のスコアの配列
戻り値: "Sorted: [sorted_array], Reversed: [reversed_array]" という形式の文字列、または配列が空の場合は "No scores" (String)
例: scores が [85, 42, 97, 63] の場合、関数は以下を返す必要があります:
"Sorted: [42, 63, 85, 97], Reversed: [63, 97, 42, 85]"注意: 逆順の配列は、ソートされたものではなく、オリジナルの配列を逆順にしたものである必要があります。
チートシート
Swiftの配列には、コレクションを操作するための便利なメソッドがいくつか用意されています:
isEmptyプロパティは、配列に要素が含まれているかどうかを確認します:
var tasks = [String]()
print(tasks.isEmpty) // true
tasks.append("Buy groceries")
print(tasks.isEmpty) // false配列からすべての要素を削除するには、removeAll()を使用します:
var numbers = [1, 2, 3, 4, 5]
numbers.removeAll()
print(numbers) // []reversed()メソッドは、要素を逆順にして返します:
let letters = ["A", "B", "C"]
print(Array(letters.reversed())) // ["C", "B", "A"]ソート(並べ替え)を行うには、sorted()を使用して新しいソート済み配列を作成するか、sort()を使用してその場でソートします:
let scores = [85, 42, 97, 63]
print(scores.sorted()) // [42, 63, 85, 97]
var prices = [9.99, 2.50, 5.75]
prices.sort()
print(prices) // [2.5, 5.75, 9.99]sorted()は元の配列を変更せずに新しい配列を返しますが、sort()は配列を直接変更します。
自分で試してみよう
func processScores(scores: [Int]) -> String {
// ここにコードを記述してください
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。