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?
a.length - b.lengthinside the sort function.