配列内のオブジェクトを検索しますか? 質問する

配列内のオブジェクトを検索しますか? 質問する

Swiftには次のようなものがあります_.検索場所Underscore.js では?

型の構造体の配列があり、その配列に プロパティが に等しいT構造体オブジェクトが含まれているかどうかを確認したいと思います。nameFoo

find()とを使用しようとしましたが、これらはや などのfilter()プリミティブ型でのみ機能します。プロトコルに準拠していないなどのエラーがスローされます。StringIntEquitable

ベストアンサー1

スイフト5

要素が存在するかどうかを確認する

if array.contains(where: {$0.name == "foo"}) {
   // it exists, do something
} else {
   //item could not be found
}

要素を取得する

if let foo = array.first(where: {$0.name == "foo"}) {
   // do something with foo
} else {
   // item could not be found
}

要素とそのオフセットを取得する

if let foo = array.enumerated().first(where: {$0.element.name == "foo"}) {
   // do something with foo.offset and foo.element
} else {
   // item could not be found
}

オフセットを取得する

if let fooOffset = array.firstIndex(where: {$0.name == "foo"}) {
    // do something with fooOffset
} else {
    // item could not be found
}

おすすめ記事