1. ホーム
  2. swift

[解決済み] Swiftで配列の配列を平らにする

2022-04-15 15:02:01

質問

Swift には、次のような対応するものがありますか? flatten Scala、Xtend、Groovy、Ruby、および co で?

var aofa = [[1,2,3],[4],[5,6,7,8,9]]
aofa.flatten() // shall deliver [1,2,3,4,5,6,7,8,9] 

もちろんreduceを使うこともできますが、それはちょっと嫌です。

var flattened = aofa.reduce(Int[]()){
    a,i in var b : Int[] = a
    b.extend(i)
    return b
}

解決方法は?

Swift >= 3.0

reduce :

let numbers = [[1,2,3],[4],[5,6,7,8,9]]
let reduced = numbers.reduce([], +)

flatMap :

let numbers = [[1,2,3],[4],[5,6,7,8,9]]
let flattened = numbers.flatMap { $0 }

joined :

let numbers = [[1,2,3],[4],[5,6,7,8,9]]
let joined = Array(numbers.joined())