"1 empty item" в массиве javascript
Код:
let a = ["1"];
let b = [];
delete a[0];
console.log(a);
console.log(b);
console.log(a.length);
console.log(b.length);
console.log(typeof a[0]);
console.log(typeof b[0]);
Вывод:
[ <1 empty item> ]
[]
1
0
undefined
undefined
Что такое <1 empty item>? И почему длинна 1?
Ответы (1 шт):
Автор решения: Алексей Шиманский
→ Ссылка
Значение из ячейки было удалено, но место под другое значение осталось.
Оператор delete удаляет свойство объекта. Для массива - это индекс. Сам элемент не удаляется
В итоге получается разряженный массив (sparse) (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Trailing_commas#trailing_commas_in_literals)
Тоже самое получается при висячих запятых
[0, 1, null, 2, "", 3, undefined, 3,,,,,, 4,, 4,, 5,, 6,,,,];