How to search an Array containing struct elements in Swift?












20















It's kind pretty straight forward to find an element in an array with type String, Int, etc.



var States = ["CA", "FL", "MI"]
var filteredStates = States.filter {$0 == "FL"} // returns false, true, false


Now, I created a struct



struct Candy{
let name:String
}


and then initialized it



var candies =  [Candy(name: "Chocolate"),
Candy(name: "Lollipop"),
Candy(name: "Caramel")]


Can anyone please suggest the right way to find "Chocolate" in the array containing struct elements? I'm not able to implement the find or filter method.










share|improve this question





























    20















    It's kind pretty straight forward to find an element in an array with type String, Int, etc.



    var States = ["CA", "FL", "MI"]
    var filteredStates = States.filter {$0 == "FL"} // returns false, true, false


    Now, I created a struct



    struct Candy{
    let name:String
    }


    and then initialized it



    var candies =  [Candy(name: "Chocolate"),
    Candy(name: "Lollipop"),
    Candy(name: "Caramel")]


    Can anyone please suggest the right way to find "Chocolate" in the array containing struct elements? I'm not able to implement the find or filter method.










    share|improve this question



























      20












      20








      20


      5






      It's kind pretty straight forward to find an element in an array with type String, Int, etc.



      var States = ["CA", "FL", "MI"]
      var filteredStates = States.filter {$0 == "FL"} // returns false, true, false


      Now, I created a struct



      struct Candy{
      let name:String
      }


      and then initialized it



      var candies =  [Candy(name: "Chocolate"),
      Candy(name: "Lollipop"),
      Candy(name: "Caramel")]


      Can anyone please suggest the right way to find "Chocolate" in the array containing struct elements? I'm not able to implement the find or filter method.










      share|improve this question
















      It's kind pretty straight forward to find an element in an array with type String, Int, etc.



      var States = ["CA", "FL", "MI"]
      var filteredStates = States.filter {$0 == "FL"} // returns false, true, false


      Now, I created a struct



      struct Candy{
      let name:String
      }


      and then initialized it



      var candies =  [Candy(name: "Chocolate"),
      Candy(name: "Lollipop"),
      Candy(name: "Caramel")]


      Can anyone please suggest the right way to find "Chocolate" in the array containing struct elements? I'm not able to implement the find or filter method.







      ios arrays swift ios8






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Dec 1 '18 at 20:41









      Shruti Thombre

      8311722




      8311722










      asked Sep 4 '14 at 12:08









      Naren SinghNaren Singh

      10716




      10716
























          1 Answer
          1






          active

          oldest

          votes


















          30














          With the following code you receive all candy structs in the array, which match to "Chocolate".



          var candiesFiltered = candies.filter{$0.name == "Chocolate"}


          If you just want a boolean if it has been found or not you could use the following code:



          var found = candies.filter{$0.name == "Chocolate"}.count > 0





          share|improve this answer


























          • Cool. Thanks Worked for me!

            – Naren Singh
            Sep 4 '14 at 12:42






          • 2





            The syntax can be simplified as filter { $0.name == ... } since the closure is 'trailing'.

            – GoZoner
            Sep 4 '14 at 14:49











          • Thanks GoZoner, I've updated the answer.

            – Prine
            Sep 4 '14 at 15:38











          • Is it possible to also filter with a dynamic string? something like: var candiesFiltered = candies.filter{$0[customProperty] == "Chocolate"}

            – Zzarcon
            Mar 31 '16 at 15:58











          • can we use to || operator inside the filter block? I need to compare fromString & toString

            – Bhupesh
            Dec 19 '17 at 4:21











          Your Answer






          StackExchange.ifUsing("editor", function () {
          StackExchange.using("externalEditor", function () {
          StackExchange.using("snippets", function () {
          StackExchange.snippets.init();
          });
          });
          }, "code-snippets");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "1"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f25665122%2fhow-to-search-an-array-containing-struct-elements-in-swift%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          30














          With the following code you receive all candy structs in the array, which match to "Chocolate".



          var candiesFiltered = candies.filter{$0.name == "Chocolate"}


          If you just want a boolean if it has been found or not you could use the following code:



          var found = candies.filter{$0.name == "Chocolate"}.count > 0





          share|improve this answer


























          • Cool. Thanks Worked for me!

            – Naren Singh
            Sep 4 '14 at 12:42






          • 2





            The syntax can be simplified as filter { $0.name == ... } since the closure is 'trailing'.

            – GoZoner
            Sep 4 '14 at 14:49











          • Thanks GoZoner, I've updated the answer.

            – Prine
            Sep 4 '14 at 15:38











          • Is it possible to also filter with a dynamic string? something like: var candiesFiltered = candies.filter{$0[customProperty] == "Chocolate"}

            – Zzarcon
            Mar 31 '16 at 15:58











          • can we use to || operator inside the filter block? I need to compare fromString & toString

            – Bhupesh
            Dec 19 '17 at 4:21
















          30














          With the following code you receive all candy structs in the array, which match to "Chocolate".



          var candiesFiltered = candies.filter{$0.name == "Chocolate"}


          If you just want a boolean if it has been found or not you could use the following code:



          var found = candies.filter{$0.name == "Chocolate"}.count > 0





          share|improve this answer


























          • Cool. Thanks Worked for me!

            – Naren Singh
            Sep 4 '14 at 12:42






          • 2





            The syntax can be simplified as filter { $0.name == ... } since the closure is 'trailing'.

            – GoZoner
            Sep 4 '14 at 14:49











          • Thanks GoZoner, I've updated the answer.

            – Prine
            Sep 4 '14 at 15:38











          • Is it possible to also filter with a dynamic string? something like: var candiesFiltered = candies.filter{$0[customProperty] == "Chocolate"}

            – Zzarcon
            Mar 31 '16 at 15:58











          • can we use to || operator inside the filter block? I need to compare fromString & toString

            – Bhupesh
            Dec 19 '17 at 4:21














          30












          30








          30







          With the following code you receive all candy structs in the array, which match to "Chocolate".



          var candiesFiltered = candies.filter{$0.name == "Chocolate"}


          If you just want a boolean if it has been found or not you could use the following code:



          var found = candies.filter{$0.name == "Chocolate"}.count > 0





          share|improve this answer















          With the following code you receive all candy structs in the array, which match to "Chocolate".



          var candiesFiltered = candies.filter{$0.name == "Chocolate"}


          If you just want a boolean if it has been found or not you could use the following code:



          var found = candies.filter{$0.name == "Chocolate"}.count > 0






          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Sep 4 '14 at 15:38

























          answered Sep 4 '14 at 12:22









          PrinePrine

          8,67573355




          8,67573355













          • Cool. Thanks Worked for me!

            – Naren Singh
            Sep 4 '14 at 12:42






          • 2





            The syntax can be simplified as filter { $0.name == ... } since the closure is 'trailing'.

            – GoZoner
            Sep 4 '14 at 14:49











          • Thanks GoZoner, I've updated the answer.

            – Prine
            Sep 4 '14 at 15:38











          • Is it possible to also filter with a dynamic string? something like: var candiesFiltered = candies.filter{$0[customProperty] == "Chocolate"}

            – Zzarcon
            Mar 31 '16 at 15:58











          • can we use to || operator inside the filter block? I need to compare fromString & toString

            – Bhupesh
            Dec 19 '17 at 4:21



















          • Cool. Thanks Worked for me!

            – Naren Singh
            Sep 4 '14 at 12:42






          • 2





            The syntax can be simplified as filter { $0.name == ... } since the closure is 'trailing'.

            – GoZoner
            Sep 4 '14 at 14:49











          • Thanks GoZoner, I've updated the answer.

            – Prine
            Sep 4 '14 at 15:38











          • Is it possible to also filter with a dynamic string? something like: var candiesFiltered = candies.filter{$0[customProperty] == "Chocolate"}

            – Zzarcon
            Mar 31 '16 at 15:58











          • can we use to || operator inside the filter block? I need to compare fromString & toString

            – Bhupesh
            Dec 19 '17 at 4:21

















          Cool. Thanks Worked for me!

          – Naren Singh
          Sep 4 '14 at 12:42





          Cool. Thanks Worked for me!

          – Naren Singh
          Sep 4 '14 at 12:42




          2




          2





          The syntax can be simplified as filter { $0.name == ... } since the closure is 'trailing'.

          – GoZoner
          Sep 4 '14 at 14:49





          The syntax can be simplified as filter { $0.name == ... } since the closure is 'trailing'.

          – GoZoner
          Sep 4 '14 at 14:49













          Thanks GoZoner, I've updated the answer.

          – Prine
          Sep 4 '14 at 15:38





          Thanks GoZoner, I've updated the answer.

          – Prine
          Sep 4 '14 at 15:38













          Is it possible to also filter with a dynamic string? something like: var candiesFiltered = candies.filter{$0[customProperty] == "Chocolate"}

          – Zzarcon
          Mar 31 '16 at 15:58





          Is it possible to also filter with a dynamic string? something like: var candiesFiltered = candies.filter{$0[customProperty] == "Chocolate"}

          – Zzarcon
          Mar 31 '16 at 15:58













          can we use to || operator inside the filter block? I need to compare fromString & toString

          – Bhupesh
          Dec 19 '17 at 4:21





          can we use to || operator inside the filter block? I need to compare fromString & toString

          – Bhupesh
          Dec 19 '17 at 4:21




















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Stack Overflow!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f25665122%2fhow-to-search-an-array-containing-struct-elements-in-swift%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          MongoDB - Not Authorized To Execute Command

          How to fix TextFormField cause rebuild widget in Flutter

          Npm cannot find a required file even through it is in the searched directory