[Swift]配列(array)のnilの値を除外するには?

Swift

どうも、ちょげ(@chogetarou)です。

配列(array)のnilの値を除外する方法を紹介します。

スポンサーリンク

方法

配列(array)のnilの値を除外する方法は、2つあります。

compactMap()

ひとつは、compactMap()を使う方法です。

まず、配列からcompactMap()を呼び出します。

そして、compactMapのクロージャーで「$0」を返します。

//arr=対象の配列
let result = arr.compactMap { $0 }

上記のmap()は、呼び出した配列のnilの値を除外した配列を返します。

使用例

import Foundation

let nums = [nil, "one", "two", nil, "three", nil, nil, "four", "five"]

let result = nums.compactMap { $0 }

print(result)
出力:
["one", "two", "three", "four", "five"]

filter()

もうひとつは、filter()を使う方法です。

まず、配列からfilter()を呼び出します。

そして、filter()のクロージャーで「$0 != nil」を返します。

//arr=対象の配列
let result = arr.filter { $0 != nil }

上記のfilter()は、呼び出した配列のnilの値を除外した配列を返します。

使用例

import Foundation

let nums = [nil, "one", "two", nil, "three", nil, nil, "four", "five"]

let result = nums.filter { $0 != nil }

print(result)
出力:
[Optional("one"), Optional("two"), Optional("three"), Optional("four"), Optional("five")]

まとめ

配列(array)のnilの値を除外する方法は、次の2つです。

  • compactMap()を使う方法
    let result = arr.compactMap { $0 }
  • filter()を使う方法
    let result = arr.filter { $0 != nil }

コメント

タイトルとURLをコピーしました