Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

JavaScript JavaScript Foundations Arrays Methods: Part 2

JavaScript Foundations - Stage 4 Arrays - Methods 2 - Challenge Task 2 Not sure how to approach this?

The previous video showed us how to sort from smallest to largest in a numerical way. This challenge asks us to sort strings from smallest to largest. I get that we have to use the length property but even with that knowledge I'm having trouble with this. Any help would be appreciated.

Numerical Way

my_Array.sort(function(a, b) { return a - b });

My Attempt

  saying2.sort(function(word) {
    return word.length;
  });
index.html
<!DOCTYPE html>
<html lang="en">
  <head>
    <title> JavaScript Foundations: Arrays</title>
    <style>
      html {
        background: #FAFAFA;
        font-family: sans-serif;
      }
    </style>
  </head>
  <body>
    <h1>JavaScript Foundations</h1>
    <h2>Arrays: Methods Part 1</h2>
    <script>
      var saying1 = ["The", "quick", "brown", "fox", "jumps", "over", "the", "lazy", "dog"];
      var saying2 = ["The", "quick", "brown", "fox", "jumped", "over", "the", "lazy", "dog's", "back"];
      saying1.reverse();
      saying2.sort(function(word) {
        return word.length;
      });
    </script>
  </body>
</html>

1 Answer

Hi Ivan,

Try this for the saying2 lines:

saying2.sort(function (a, b){
        return (a.length - b.length);
      })

Hope that helps.

-Rich

Thanks Rich,

That worked perfectly, I guess I should of taken the numerical example in the video literally. I remembered him saying the example would only work for numbers but your logic makes sense. Thanks again for the help.