Массивы JavaScript могут иметь отрицательные индексы элементов. Например,
var massiv = [] massiv[-1] = -1 massiv[-2] = -2 massiv[-3] = -3
Мы создали пустой массив, а затем положили в него элементы с отрицательными индексами. Посмотрим как это выглядит в консоли браузера:

Проблема № 1
Первое, что бросается в глаза — это длина такого массива. Она равняется нулю — 0. Это значит, что мы не сможем завязать такой массив на алгоритме, который должен учитывать длину. Тогда зачем он нужен?
Проблема № 2
В таких массива будут некорректно работать методы объектов-прототипов. Например есть массив:
[100, 200, 300, -1: -1, -2: -2, -3: -3]
Если мы пройдёмся по нему методом map() и прибавим к каждому элементу единицу, то вот что у нас получится.
[101, 201, 301]
Вывод в консоли браузера:

Для массивов с отрицательными индексами нужно писать свои методы.
Проблема № 3
Попытка приведения такого массива к строке JSON вернёт нам пустой массив. То есть в момень преобразования в строку потеряются данные об отрицательных индексах.
JSON.stringify(massiv) "[]" JSON.parse(JSON.stringify(massiv)) []
