• [deleted] 9 years ago + 3 comments

    BONUS CHALLENGE

    Gratz! If you have solved this challenge.

    But

    Can you try solving this using filter and for ... of?

    Add Reply Preview cancel

    Sorry, you do not have a permission to answer to this question.

    • MikeLDJ 9 years ago + 1 comment

      This can't be solved... not for the begginers.

      Add Reply Preview cancel

      Sorry, you do not have a permission to answer to this question.

      • wzaccone64 9 years ago + 1 comment

        compare each character at the beginning of the string against each character at the end of the string, and move the beginning and ending indexes as long as it is still a paladrum or until the indices meet each other.

         for(var str of my_array){
           var ldx = str.length - 1;
           var pala = true;
           var idx = 0;
           while ((pala) && (idx < str.length) && (idx != ldx)) 
              if (str[idx++] != str[ldx--]) pala = false;
           if (pala) console.log(str);
         }
        

        Add Reply Preview cancel

        Sorry, you do not have a permission to answer to this question.

        • givonz 9 years ago + 0 comments

          imho, this is far more intuitive, than using the reverse function. personally, i built a reverse of the string with a concat from the end. then compare the two strings.

          Add Reply Preview cancel

          Sorry, you do not have a permission to answer to this question.

      • MistaTwist 9 years ago + 1 comment

        //Would something like this work?

        "use strict"

        function isPalindrome(str) { return str === str.split('').reverse().join(''); }

        var palindromes = my_array.filter(isPalindrome);

        for(let pal of palindromes){ console.log(pal); }

        Add Reply Preview cancel

        Sorry, you do not have a permission to answer to this question.

        • [deleted] 9 years ago + 4 comments

          Great @MistaTwist, nicely done!! :)

          We can make our code more crisp, using arrow functions.

          "use strict"
          for(let palindrome of my_array.filter(str => str === str.split('').reverse().join('')))
              console.log(palindrome)
          

          Add Reply Preview cancel

          Sorry, you do not have a permission to answer to this question.

          • MistaTwist 9 years ago + 0 comments

            Ah yes, of course ;) Thanks!

            Add Reply Preview cancel

            Sorry, you do not have a permission to answer to this question.

            • MistaTwist 9 years ago + 1 comment

              One question though - what's the ideal use of arrow functions, with regards to reuse of functions?

              Let's say I wanted to use isPalindrome elsewhere - could I just call isPalindrome(str) in the arrow function like this:

              //assume my function is defined ok

              for(let palindrome of my_array.filter(str => isPalindrome(str)){ console.log(palindrome); }

              Thanks :)

              Add Reply Preview cancel

              Sorry, you do not have a permission to answer to this question.

              • [deleted] 9 years ago + 1 comment

                Yes!, you can create a separate arrow function and call it.
                Something like this will work:

                "use strict"
                let isPalindrome = str => str === str.split('').reverse().join('')
                for(let palindrome of my_array.filter(item => isPalindrome(item)))
                    console.log(palindrome)
                

                And yes! creating a separate isPalindrome() function will make the code more readable+reusuable and hence it is recommended to do so :).

                Add Reply Preview cancel

                Sorry, you do not have a permission to answer to this question.

                • MistaTwist 9 years ago + 0 comments

                  Great, thanks for confirming! I think I'm starting to get to grips more with ES6 syntax :D

                  Add Reply Preview cancel

                  Sorry, you do not have a permission to answer to this question.

              • jonmcclung 9 years ago + 0 comments

                This is what I did (except the "use strict", I don't know what that means) and this contest is the first experience I have with Javascript!

                Add Reply Preview cancel

                Sorry, you do not have a permission to answer to this question.

                • omi_tewary92 9 years ago + 1 comment

                  but it is not taking care of constraint given size of each string lies between 0 and 100

                  Add Reply Preview cancel

                  Sorry, you do not have a permission to answer to this question.

                  • [deleted] 9 years ago + 0 comments

                    Those constraints are for the testcases. it is to inform the user about test case constraints.

                    Add Reply Preview cancel

                    Sorry, you do not have a permission to answer to this question.

              • JChiquin 7 years ago + 0 comments

                One-liner solution:

                console.log(my_array.filter(a=>a==a.split('').reverse().join('')).join('\n'));
                

                Add Reply Preview cancel

                Sorry, you do not have a permission to answer to this question.

              1. Challenge Walkthrough
                Let's walk through this sample challenge and explore the features of the code editor.1 of 6
              2. Review the problem statement
                Each challenge has a problem statement that includes sample inputs and outputs. Some challenges include additional information to help you out.2 of 6
              3. Choose a language
                Select the language you wish to use to solve this challenge.3 of 6
              4. Enter your code
                Code your solution in our custom editor or code in your own environment and upload your solution as a file.4 of 6
              5. Test your code
                You can compile your code and test it for errors and accuracy before submitting.5 of 6
              6. Submit to see results
                When you're ready, submit your solution! Remember, you can go back and refine your code anytime.6 of 6
              1. Check your score