React native - Iterating using MAP









up vote
0
down vote

favorite












Not sure what's wrong, but I've this json...



CONTENT = {
"pages": {
"p1":
"backgroundImage": require("../assets/pageBkgs/p1.png"),
"backgroundColor": "#FF0000",
"elements": [

"jumpTo":
"left": 500,
"top": 500,
"width": 100,
"height": 100,
"target": "p3"
,
"video" :
"left": 200,
"top": 200,
"width": 100,
"height": 100,
"file": require("../assets/videos/limenice.mp4")


]



and this should be iterate an return accordly:



<View style=styles.pageContainer>

CONTENT.pages[pageKey].elements.map(element =>
const type = Object.keys(element).toString()
alert(Object.keys(element).toString())
switch (type)
case "jumpTo":
return JumpTo(Object.values(element)[0], this.executeJumpTo.bind(this), CONTENT.designTime)
break
case "video":
return VideoPlayer(Object.values(element)[0], CONTENT.designTime)
break
default:
return null

)

</View>)


The alert show: "jumpTo,video"



I am trying to archive something like...



for(let i=0; i < CONTENT.pages[pageKey].elements.length;i++) 
switch (Object.keys(CONTENT.pages[pageKey].elements[i]).toString())
case "jumpTo":
return JumpTo(Object.values(element)[0], this.executeJumpTo.bind(this), CONTENT.designTime)
break
case "video":
return VideoPlayer(Object.values(element)[0], CONTENT.designTime)
break
default:
return null




where I am expecting a result of 2 alerts: jumpTo and video (instead both separated by comma)



Any clue ? I think it's a basic functional programming issue.










share|improve this question

























    up vote
    0
    down vote

    favorite












    Not sure what's wrong, but I've this json...



    CONTENT = {
    "pages": {
    "p1":
    "backgroundImage": require("../assets/pageBkgs/p1.png"),
    "backgroundColor": "#FF0000",
    "elements": [

    "jumpTo":
    "left": 500,
    "top": 500,
    "width": 100,
    "height": 100,
    "target": "p3"
    ,
    "video" :
    "left": 200,
    "top": 200,
    "width": 100,
    "height": 100,
    "file": require("../assets/videos/limenice.mp4")


    ]



    and this should be iterate an return accordly:



    <View style=styles.pageContainer>

    CONTENT.pages[pageKey].elements.map(element =>
    const type = Object.keys(element).toString()
    alert(Object.keys(element).toString())
    switch (type)
    case "jumpTo":
    return JumpTo(Object.values(element)[0], this.executeJumpTo.bind(this), CONTENT.designTime)
    break
    case "video":
    return VideoPlayer(Object.values(element)[0], CONTENT.designTime)
    break
    default:
    return null

    )

    </View>)


    The alert show: "jumpTo,video"



    I am trying to archive something like...



    for(let i=0; i < CONTENT.pages[pageKey].elements.length;i++) 
    switch (Object.keys(CONTENT.pages[pageKey].elements[i]).toString())
    case "jumpTo":
    return JumpTo(Object.values(element)[0], this.executeJumpTo.bind(this), CONTENT.designTime)
    break
    case "video":
    return VideoPlayer(Object.values(element)[0], CONTENT.designTime)
    break
    default:
    return null




    where I am expecting a result of 2 alerts: jumpTo and video (instead both separated by comma)



    Any clue ? I think it's a basic functional programming issue.










    share|improve this question























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      Not sure what's wrong, but I've this json...



      CONTENT = {
      "pages": {
      "p1":
      "backgroundImage": require("../assets/pageBkgs/p1.png"),
      "backgroundColor": "#FF0000",
      "elements": [

      "jumpTo":
      "left": 500,
      "top": 500,
      "width": 100,
      "height": 100,
      "target": "p3"
      ,
      "video" :
      "left": 200,
      "top": 200,
      "width": 100,
      "height": 100,
      "file": require("../assets/videos/limenice.mp4")


      ]



      and this should be iterate an return accordly:



      <View style=styles.pageContainer>

      CONTENT.pages[pageKey].elements.map(element =>
      const type = Object.keys(element).toString()
      alert(Object.keys(element).toString())
      switch (type)
      case "jumpTo":
      return JumpTo(Object.values(element)[0], this.executeJumpTo.bind(this), CONTENT.designTime)
      break
      case "video":
      return VideoPlayer(Object.values(element)[0], CONTENT.designTime)
      break
      default:
      return null

      )

      </View>)


      The alert show: "jumpTo,video"



      I am trying to archive something like...



      for(let i=0; i < CONTENT.pages[pageKey].elements.length;i++) 
      switch (Object.keys(CONTENT.pages[pageKey].elements[i]).toString())
      case "jumpTo":
      return JumpTo(Object.values(element)[0], this.executeJumpTo.bind(this), CONTENT.designTime)
      break
      case "video":
      return VideoPlayer(Object.values(element)[0], CONTENT.designTime)
      break
      default:
      return null




      where I am expecting a result of 2 alerts: jumpTo and video (instead both separated by comma)



      Any clue ? I think it's a basic functional programming issue.










      share|improve this question













      Not sure what's wrong, but I've this json...



      CONTENT = {
      "pages": {
      "p1":
      "backgroundImage": require("../assets/pageBkgs/p1.png"),
      "backgroundColor": "#FF0000",
      "elements": [

      "jumpTo":
      "left": 500,
      "top": 500,
      "width": 100,
      "height": 100,
      "target": "p3"
      ,
      "video" :
      "left": 200,
      "top": 200,
      "width": 100,
      "height": 100,
      "file": require("../assets/videos/limenice.mp4")


      ]



      and this should be iterate an return accordly:



      <View style=styles.pageContainer>

      CONTENT.pages[pageKey].elements.map(element =>
      const type = Object.keys(element).toString()
      alert(Object.keys(element).toString())
      switch (type)
      case "jumpTo":
      return JumpTo(Object.values(element)[0], this.executeJumpTo.bind(this), CONTENT.designTime)
      break
      case "video":
      return VideoPlayer(Object.values(element)[0], CONTENT.designTime)
      break
      default:
      return null

      )

      </View>)


      The alert show: "jumpTo,video"



      I am trying to archive something like...



      for(let i=0; i < CONTENT.pages[pageKey].elements.length;i++) 
      switch (Object.keys(CONTENT.pages[pageKey].elements[i]).toString())
      case "jumpTo":
      return JumpTo(Object.values(element)[0], this.executeJumpTo.bind(this), CONTENT.designTime)
      break
      case "video":
      return VideoPlayer(Object.values(element)[0], CONTENT.designTime)
      break
      default:
      return null




      where I am expecting a result of 2 alerts: jumpTo and video (instead both separated by comma)



      Any clue ? I think it's a basic functional programming issue.







      react-native






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 8 at 14:17









      Marco Jr

      1,66872346




      1,66872346






















          1 Answer
          1






          active

          oldest

          votes

















          up vote
          0
          down vote













          To get two subsequent alerts:



          Object.keys(CONTENT.pages[pageKey].elements).each(type => alert(type));


          To return two subsequent components [JumpTo, VideoPlayer]:



           Object.keys(CONTENT.pages[pageKey].elements).map(type => switch(type) 
          /* your case statements */
          );





          share|improve this answer




















            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',
            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%2f53209600%2freact-native-iterating-using-map%23new-answer', 'question_page');

            );

            Post as a guest






























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            0
            down vote













            To get two subsequent alerts:



            Object.keys(CONTENT.pages[pageKey].elements).each(type => alert(type));


            To return two subsequent components [JumpTo, VideoPlayer]:



             Object.keys(CONTENT.pages[pageKey].elements).map(type => switch(type) 
            /* your case statements */
            );





            share|improve this answer
























              up vote
              0
              down vote













              To get two subsequent alerts:



              Object.keys(CONTENT.pages[pageKey].elements).each(type => alert(type));


              To return two subsequent components [JumpTo, VideoPlayer]:



               Object.keys(CONTENT.pages[pageKey].elements).map(type => switch(type) 
              /* your case statements */
              );





              share|improve this answer






















                up vote
                0
                down vote










                up vote
                0
                down vote









                To get two subsequent alerts:



                Object.keys(CONTENT.pages[pageKey].elements).each(type => alert(type));


                To return two subsequent components [JumpTo, VideoPlayer]:



                 Object.keys(CONTENT.pages[pageKey].elements).map(type => switch(type) 
                /* your case statements */
                );





                share|improve this answer












                To get two subsequent alerts:



                Object.keys(CONTENT.pages[pageKey].elements).each(type => alert(type));


                To return two subsequent components [JumpTo, VideoPlayer]:



                 Object.keys(CONTENT.pages[pageKey].elements).map(type => switch(type) 
                /* your case statements */
                );






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 8 at 14:34









                Daniel Rothig

                5468




                5468



























                     

                    draft saved


                    draft discarded















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53209600%2freact-native-iterating-using-map%23new-answer', 'question_page');

                    );

                    Post as a guest














































































                    Popular posts from this blog

                    𛂒𛀶,𛀽𛀑𛂀𛃧𛂓𛀙𛃆𛃑𛃷𛂟𛁡𛀢𛀟𛁤𛂽𛁕𛁪𛂟𛂯,𛁞𛂧𛀴𛁄𛁠𛁼𛂿𛀤 𛂘,𛁺𛂾𛃭𛃭𛃵𛀺,𛂣𛃍𛂖𛃶 𛀸𛃀𛂖𛁶𛁏𛁚 𛂢𛂞 𛁰𛂆𛀔,𛁸𛀽𛁓𛃋𛂇𛃧𛀧𛃣𛂐𛃇,𛂂𛃻𛃲𛁬𛃞𛀧𛃃𛀅 𛂭𛁠𛁡𛃇𛀷𛃓𛁥,𛁙𛁘𛁞𛃸𛁸𛃣𛁜,𛂛,𛃿,𛁯𛂘𛂌𛃛𛁱𛃌𛂈𛂇 𛁊𛃲,𛀕𛃴𛀜 𛀶𛂆𛀶𛃟𛂉𛀣,𛂐𛁞𛁾 𛁷𛂑𛁳𛂯𛀬𛃅,𛃶𛁼

                    Edmonton

                    Crossroads (UK TV series)