1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

配列操作 swift

Posted at

■配列のプロパティまとめ

概要 プロパティ 説明      
要素の数 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

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?