Что выведет код Junior Объекты и массивы обновлено

delete в массиве

Вопрос

Что выведет код? По строке на каждый вывод.

const a = [1, 2, 3];
delete a[1];
console.log(a.length);
console.log(a[1]);
console.log(a.filter(() => true).length);

Попробуйте сами

Напишите, что выведет код: каждый вывод с новой строки.

Показать ответ и разбор

Коротко

Код выведет: 3, undefined, 2. Почему так delete оставляет дыру, длина не меняется.

Что выведет

3
undefined
2

Разбор

Почему так

delete оставляет дыру, длина не меняется. Для удаления элемента нужен splice или filter. filter дыры пропускает, поэтому длина результата меньше.

Вывод

3
undefined
2

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.