Объясните, что происходит при использовании оператора delete с массивом в JavaScript?

В JavaScript оператор delete при применении к элементу массива удаляет свойство с этим индексом, но не изменяет длину массива.

Короткий ответ

Что ответить на собеседовании

В JavaScript оператор delete при применении к элементу массива удаляет свойство с этим индексом, но не изменяет длину массива. Вместо удаления элемента происходит создание "пустого" места (undefined) в массиве, то есть элемент становится «пустым слотом».

Подробный разбор

Ответ с пояснениями

В JavaScript оператор delete при применении к элементу массива удаляет свойство с этим индексом, но не изменяет длину массива. Вместо удаления элемента происходит создание "пустого" места (undefined) в массиве, то есть элемент становится «пустым слотом».

Пример:

const arr = [1, 2, 3];
delete arr[1];
console.log(arr);       // [1, <1 empty item>, 3]
console.log(arr.length); // 3

Если нужно удалить элемент и сдвинуть остальные, чтобы не было дыр, лучше использовать методы splice или filter.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее