Inside my node.js REPL I create 4 arrays :
a = [1,2,3]
, b=[]
, c=[4,5]
, d=null
( ok d
is not an array but you get my point)
I compare them directly this way :
> b = []
[]
> a > b
true
> b > a
false
> a > c
false
> c > a
true
> c > b
true
> b > c
false
> d > a
false
> a > d
false
What are these expressions actually evaluating?
I see that it's clearly not the length of the arrays. Otherwise c > a
would have been false
.
Can somebody please help me understand!
The arrays get converted to strings first (including the commas).
[1, 2, -3]
for instance becomes the string '1,2,-3'
Then the strings get compared in an "alphabetical" order (based on their character codes).
It is not a very intuitive way of accomplishing comparisons, and should be avoided.