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

Patrick Ludwig
Patrick Ludwig
2,462 Points

I don't think this was covered in the video

This challenge asks me to sort the saying2 string "so that the words are listed in length order." However, it keeps giving me an error message saying that the string is now not in the original order. Don't we have to change the order to put them in "length order?" I am very confused.

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(){
        return saying2.length;
      });
    </script>
  </body>
</html>

2 Answers

Danielle Hill
Danielle Hill
26,062 Points

Hi Patrick. The question calls for using a comparative function with the sort method that was covered in the video. It requires writing a function to compare the lengths of two arguments, let's say a and b.

function (a, b) {  }

This function must return the difference in the length of a and the length of b.

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

Passing this function to the sort method will change the order of the array based on length.

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