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


Frankie Lamar
Frankie Lamar
11,120 Points

Arrays Stage 4 Exercises 2 of 2

I'm trying to sort an sayings2[ ] by string length. For some reason this isn't clicking for me. I've watched the video twice and tried to figure it out on stackoverflow and w3 school without any luck. Can somebody please explain this to me.

<!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(); sayings2.sort(function(a,b){ return a.length < b.length});


</body> </html>

3 Answers

Frankie Lamar
Frankie Lamar
11,120 Points

copy and pasting that code didn't quite turn out right. Here is the link on code pen: http://cdpn.io/pcAbm

2,343 Points

Rewatch the 'Return a-b' part, that function as an argument is how you solve it.

a.length & etc.

for one you have an unneeded "s" in your variable name: "sayings2" should be "saying2"

instead of using the < comparison I switched to -

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