Что означает сравнение двух массивов в 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'

Затем строки сравниваются в «алфавитном» порядке (на основе их кодов символов).

Это не очень интуитивный способ сравнения, и его следует избегать.

Другие вопросы по тегам