1. ホーム

[解決済み] SwiftでArrayの最初の5つのオブジェクトを返すには?

2022-04-04 17:29:35

質問

Swiftでは、5つの最初のオブジェクトを返すために、Arrayの高次のメソッドを使用する巧妙な方法はありますか? それを行うobj-cの方法は、インデックスを保存し、それが5であるまでインデックスを増分する配列を介してfor-loopと新しい配列を返していました。でこれを行う方法はありますか? filter , map または reduce ?

解決方法は?

Swift の配列の最初の N 個の要素を取得する最もすてきな方法は prefix(_ maxLength: Int) :

let someArray = [1, 2, 3, 4, 5, 6, 7]
let first5 = someArray.prefix(5) // 1, 2, 3, 4, 5

これは、境界安全性が高いという利点があります。に渡したカウントが prefix が配列の数より大きい場合は、単に配列全体を返します。

注意 コメントでご指摘の通り Array.prefix は、実際には ArraySlice ではなく Array . ほとんどの場合、これは問題にはなりませんが、もし結果を Array を期待するメソッドに渡すことができます。 Array パラメータを使用する場合は、結果を強制的に Array 型を使用します。 let first5 = Array(someArray.prefix(5))