Пример массива (вывод в консоль после заполнения):
[empty × 2, 0, 1, 2, empty × 7, 3]
Как сделать length 4 а не 13?
UPD Важно сохранить индексы (2,3,4,12).
console.log(Object.keys(relations).length)
let arr = [,, 0, 1, 2, ,,,,,,, 3];
console.log(arr.flat());
К сожалению, нельзя. Так как свойство length в массиве это не количество элементов, а максимальный целый индекс +1.
Как создать массив как в вопросе:
const arr = new Array(30);
console.log(arr);
Консоль Chrome:
Как получил я:
const arr = [];
const collect = [3,8,30];
collect.forEach(item => {
arr[item] = 'item';
});
console.log(arr);
Консоль Chrome:
В моём случае, решением оказалось просто заменить индекс на значение, а значение на индекс при заполнении массива.
Полезная статья о массивах и коварном свойстве length в массивах.
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости