Длина массива равна количеству записей, если они все были заполнены.Разреженные массивы не имеют длины числа элементов в них, но основаны на максимальном индексе в них
Например:
let a = [];
a[10] = 1;
console.log(a.length);
console.log(a);
Длина составляет 11 (от 0 до 10), и вы можете видеть, что есть значения undefined
для индекса от 0 до 9.
Четная настройкапоследнее значение undefined
не влияет на длину, поскольку в этой позиции все еще есть значение undefined
.
let a = [];
a[9] = 1;
a[10] = 1;
console.log(a.length);
a[10] = undefined
console.log(a.length);
Использование удаления по-прежнему не влияет на длину.
let a = [];
a[9] = 1;
a[10] = 1;
console.log(a.length);
delete a[10];
console.log(a.length);
Единственный способ изменить длину - создать новый массив как подмножество оригинала:
let a = [];
a[9] = 1;
a[10] = 1;
console.log(a.length);
console.log(a);
a = a.slice(0,9);
console.log(a.length);
console.log(a);