Я просто сперва повелся на то, что map возвращает массив такой же длины как исходный, будто все итерации были, а на самом деле скорее всего он тупо length переписал и все, а итераций не было никаких)
Если подитожить то получается что map берёт себе набор чисел от 0 до length и просто начинает искать для каждого числа в объекте айтем с таким ключом. И если находит - запускает колбек. Если не находит - идёт дальше по индексам
На самом деле интересно, а empty item же что-то вроде заглушки для глаз? Ну то есть его ж нельзя потрогать или создать никак. Если тянуть его из массива, получаем undefined