【備忘録】配列の中の空文字を取り除く(.filter)
はじめに
.filterを使って配列の中の空文字を取り除く処理について備忘録として残します
(初心者向け)
やりたいこと
["a", "b", "c", "", "e", "", "g"]
この配列から空文字を取り除いて、文字だけの配列にする
初心者パターン
for文で書く
私は元々はこう書いていました。(初心者)
beginner
let list1 = ["a", "b", "c", "", "e", "", "g"]
var list2 = [String]()
for hoge in list1 {
if hoge != "" {
list2.append(hoge)
} else {
continue
}
}
print(list2) //["a", "b", "c", "e", "g"]
上級者パターン
.filterをつかう
advanced
let list1 = ["a", "b", "c", "", "e", "", "g"]
let list2 = list1.filter{!$0.isEmpty}
print(list2) //["a", "b", "c", "e", "g"]
1行で書けた
解説(初心者向け)
「$0」には、配列の中身が1つずつ入ってくる。
「isEmpty」は空かどうかをみてくれる。
(空の時はtrue/そうでない時はfalseを返してくれる)
↓
.filter{$0.isEmpty} = 空だけ取り出される
「!」をつけると意味が反対になる(~ではない)
↓
.filter{!$0.isEmpty} = 空でない物を取り出す
おわり
初めは慣れないですが、慣れればとても便利です。
Author And Source
この問題について(【備忘録】配列の中の空文字を取り除く(.filter)), 我々は、より多くの情報をここで見つけました https://qiita.com/erikkkk/items/6d3dbf830f872c605640著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .