Как побороть не верный length массива?

126
26 февраля 2022, 12:50

Пример массива (вывод в консоль после заполнения):

[empty × 2, 0, 1, 2, empty × 7, 3]

Как сделать length 4 а не 13?

UPD Важно сохранить индексы (2,3,4,12).

Answer 1
console.log(Object.keys(relations).length)
Answer 2

let arr = [,, 0, 1, 2, ,,,,,,, 3]; 
console.log(arr.flat());

Answer 3

К сожалению, нельзя. Так как свойство 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 в массивах.

READ ALSO
jQuery: Создать div и вывести информацию в него

jQuery: Создать div и вывести информацию в него

Суть такаяЯ жму на кнопку, и происходят следующие действия:

236
Как изменить расширение файла .txt в формат .ini который находится в "C:\"?

Как изменить расширение файла .txt в формат .ini который находится в "C:\"?

Пытаюсь поменять расширение файла изtxt в формат

106
Как сделать паузу между циклом [дубликат]

Как сделать паузу между циклом [дубликат]

Есть ассинхронный метод в котором идет цикл добавления в List значенийКак можно сделать так, чтоб при нажатие на кнопку цикл "замерзал" и если...

150