Есть массив с пустыми элементами (empty):
var massiv = [1,,2,,,3,,,,4]

Задача
Мы хотим узнать длину этого массива без пустых элементов.
В чём проблема?
У любого массива в JavaScript есть свойство «length«. Мы всегда можем обратиться к этому свойству и узнать длину массива. Давайте так и сделаем:
massiv.length
В ответ получим число 10.

Но это число не соответствует реальности т. к. «живых» элементов в массиве всего 4. Как быть?
Решение
Мы должны произвести фильтрацию оригинального массива по условию, что значение элемента массива не определено — является undefined.
i != undefined
Вызываем метод filter() с этим условием:
massiv.filter(i => i != undefined)
Фильтр пробежится по всем элементам массива и вернёт только те, которые определены.

Новый массив будет полностью заполнен элементами от начала до конца. У нового массива можно узнать длину.
massiv.filter(i => i != undefined).length

Получим длину 4. Эта длина как раз и будет количеством «живых» элементов в массиве.
Информационные ссылки
Стандарт ECMAScript — Раздел «23.1.3.7 Array.prototype.filter ( callbackfn [ , thisArg ] )» — https://tc39.es/ecma262/#sec-array.prototype.filter