Илья, когда мы значению присваиваем вот так: somVa

Илья, когда мы значению присваиваем вот так: someVar = [value], то здесь мы сразу получаем новый массив, содержащий один элемент value. То есть это уже не пустой массив, а с одним элементом.

Когда мы присваиваем вот так: someVar = [], то здесь мы получаем в переменную чистый массив без единого элемента.

Возможно вы видели что-то типа такого: (смотрите решение Оли Ершовой)

Здесь смысл в том, что если у треков вообще нет еще значения, то мы сначала задаем пустой массив. Но потом обратите внимание, что мы проверяем переменню value и если она не пустая, то добавляем ее к этому массиву.

То есть суть проверки массива и установка пустого массива такова:

  • Если массива еще нет, то создаем его.
  • Если есть, то оставляем как есть.
  • В итоге в любом случае у нас есть переменная-массив и мы пушим в нее значение, если оно не пустое.