Что означает сравнение двух массивов в Javascript? [дубликат]
Внутри моего node.js REPL я создаю 4 массива:
a = [1,2,3]
,
b=[]
,
c=[4,5]
,
d=null
( Ok
d
не массив, но вы поняли мою мысль)
Я сравниваю их прямо так:
> 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
Что на самом деле оценивают эти выражения? Я вижу, что это явно не длина массивов. Иначе
c > a
был бы
false
.
Может кто-нибудь, пожалуйста, помогите мне понять!
1 ответ
Решение
Сначала массивы преобразуются в строки (включая запятые).
[1, 2, -3]
например становится строкой
'1,2,-3'
Затем строки сравниваются в «алфавитном» порядке (на основе их кодов символов).
Это не очень интуитивный способ сравнения, и его следует избегать.