■配列のプロパティまとめ
| 概要 | プロパティ | 説明 |
|---|---|---|
| 要素の数 | count | 配列の中身の数を返す |
| 先頭の要素 | first | 始めの要素を返す |
| 最後の要素 | last | 最後の要素を返す |
| 空か | isEmpty | 空の配列であればtrue,要素があればfalseを返す |
let a = ["りんご","ばなな","みかん"]
print(a.count)
//結果: 3
//注意 firstとlastは結果がoptional型で渡されるのでオプショナルバインディングする事
if let first = a.first {
print(a.first)
//結果: りんご
}
if let last = a.last {
print(a.last)
//結果: みかん
}
print(a.isEmpty)
//結果: false
■配列のメソッド
| 概要 | メソッド | 説明 |
|---|---|---|
| 検索 | firstIndex | 指定した配列の中身の値のインデクス番号を返す |
| 検索 | lastIndex | 指定した配列の中身の値のインデクス番号を返すfirstIndexとの違いは僕は謎ですw |
| 部分列 | prefix | 先頭から数えた指定した個数分の配列を返す |
| 部分列 | suffix | 末尾からつまり配列の後ろの要素から数えた指定した個数分の要素を返す |
| 部分配列 | dropFirst | 指定した個数分の先頭要素を取り除いた要素を返す |
| 部分配列 | dropLast | 指定した個数分の末尾要素から取り除いた要素を返す |
| 追加 | append | 配列の末尾に値を付け加える |
| 挿入 | insert | 指定した位置に値を挿入する |
| 消去 | remove | 指定した位置の要素を消去する |
| 消去 | removeFirst | 最初の要素を消去する |
| 消去 | removeLast | 最後のの要素を消去する |
| 消去 | removeAll | 要素を全て消去する |
| 整列 | sort | 要素を決められた順番(昇順)に替える完全に固定でずっと変わる |
| 整列 | sorted | 要素を決められた順番(昇順)に替えて返す 一時的に順番を変えたい時こっち |
| ランダム | randomElement | 要素をランダムに返す |
| シャッフル | shuffle | 要素をランダムに並び替えるずっと |
| シャッフル | shuffle | 要素をランダムに並び替えた物を一時的に返す |
| 逆順 | revese | 要素を元の配列と逆にするずっと |
| 逆順 | reversed | 要素を元の配列に逆にした配列を返す |
var a = ["a","b","c","d"]
a.firstIndex(of: "c") //2
a.lastIndex(of: "d") //3
a.prefix(2) // ["a","b"]
a.suffix(2) // ["c","d"]
a.dropFirst(3) // ["d"]
a.dropLast(2) // ["a","b"]
a.append("e") //["a","b","c","d","e"]
a.insert("f", at: 0) //["f","a","b","c","d","e"]
a.remove(at: 0) //["a","b","c","d"] fがなくなっている。
a.removeFirst() //["b","c","d"] aがなくなっている
a.removeLast() //["b","c"] dがなくなっている
a.removeAll() //[] 全部なくなっている。
var b = [2,5,1,3,4]
b.sort // [1,2,3,4,5] 配列の中身自体をかえる。 順番がほんまの順番に変わる。
b.sorted // 配列の中身自体はを変更はしないけど 変更したものを一時的に配列にして返す
var c = b.sorted
print(b) // [2,5,1,3,4] sortしてないとする。配列の中身自体は変わらない
print(c) // [1,2,3,4,5] 変更した物を一時的に返す順番がほんまの順番に変わる。
print(b.randomElement()!) // ランダムに返される 5とか
b.shuffle() // [4,1,5,2,3] //シャッフルされる 配列の中身自体変わる。
b.shuffled() //配列の中身に変更はない 一時的に変数にいれシャッフルした配列を返す。
b.reverse() //[4,3,1,5,2] 順番逆
b.revesed() //ReversedCollection<Array<String>> ... よくわからん...
revesed()はよくわからんので分かり次第更新します。
■シーケンス操作
■fllter
指定した条件の要素等を取り出して返す。
1から100の整数が入っている配列があるとして、偶数だけを取り出したい!
let a = [Int](1...100)
let b = a.filter { $0 % 2 == 0}
print(b)
//結果: [2,4,6,8,10,なになになになに長いので省略]1から100までの整数の偶数が取り出される。
クロージャを使用してる。
$0は配列の1から100までの数字全部の引数 まあ配列の中身全部って意味
あとはそれをif文のように条件を書きそれが返される。
■map
配列中身ひとつずつ全部に指定した処理を行う。
let a = [10,20,30,40]
let b = a.map{$0 * 2} //全部2倍にしたろ
print(b) //結果: [20,40,60,80]
■forEach
配列の要素に順番に適応していく。
for-inと基本的には同じ ,forEachはbreakなどが使えない。
let a = [1,2,3]
a.forEach {
print($0) //結果: //1 //2 //3 順番に入る。
}
とりあえずここまでとします。
都度必要になれば更新します。
参考にした記事というかこちらの方の記事のアウトプットです!
完璧版は下記リンクから飛べます!
https://qiita.com/REON/items/1f33886d90b4f758e715