Leonid Gordun - 2 years ago 38
Javascript Question

# JavaScript sort of Array of arrays

I have this array of arrays. I want it to be sorted by arrays' length.
I use

`array.sort( (a, b) => a.length > b.length) );`

``````[
[],
[ 2, 2, 2, 2, 2 ],
[],
[],
[ 5 ],
[ 3, 3, 3, 3 ],
[],
[],
[ 1 ],
[ 2, 2 ],
[ 1 ],
[],
[ 4 ],
[ 3 ],
[ 1, 1 ],
[],
[ 5, 5 ],
[],
[],
[ 4, 4, 4, 4, 4, 4 ],
[],
[ 3 ],
[ 5 ],
[],
[ 5 ],
[ 1, 1 ],
[],
[ 3 ],
[],
[],
[],
[],
[ 4 ],
[ 1 ],
[ 4, 4, 4, 4 ],
[],
[ 5, 5, 5, 5 ],
[],
[],
[ 3 ],
[ 5 ],
[ 2 ],
[],
[],
[ 2 ],
[],
[],
[ 1, 1, 1 ],
[],
[ 4 ],
[ 3, 3, 3 ],
[],
[],
[ 1, 1 ],
[],
[ 4, 4 ],
[ 2, 2, 2 ],
[],
[ 2 ],
[ 2 ],
[ 4 ],
[ 2 ],
[ 3 ],
[ 2 ],
[],
[],
[],
[ 5 ] ]
``````

But after all sorting returns this. Why array of length of 6 with 4 inside it is placed in the wrong place?

``````[
[],
[],
[],
[],
[ 5 ],
[ 2 ],
[],
[],
[ 1 ],
[ 3 ],
[ 1 ],
[],
[ 4 ],
[ 3 ],
[ 2 ],
[],
[ 4 ],
[],
[],
[ 2 ],
[],
[ 3 ],
[ 5 ],
[],
[ 5 ],
[ 2 ],
[],
[ 2 ],
[],
[],
[],
[],
[ 4 ],
[ 1 ],
[],
[],
[],
[],
[],
[ 3 ],
[ 5 ],
[ 2 ],
[],
[],
[ 2 ],
[],
[],
[],
[],
[ 4 ],
[],
[ 4, 4, 4, 4, 4, 4 ],
[ 5 ],
[ 5, 5 ],
[ 1, 1 ],
[ 4, 4 ],
[ 3, 3 ],
[ 3, 3 ],
[ 1, 1 ],
[ 2, 2 ],
[ 1, 1 ],
[ 1, 1, 1 ],
[ 2, 2, 2 ],
[ 3, 3, 3 ],
[ 5, 5, 5, 5 ],
[ 3, 3, 3, 3 ],
[ 4, 4, 4, 4 ],
[ 2, 2, 2, 2, 2 ] ]
``````

What is wrong with this?

``````arr.sort(function(a, b){