Присоединяйтесь к новому бесплатному курсу по Angular: "Список пользователей"
Курс проходит в мессенджере (Telegram, Viber). В конце курса - сессия живого разбора кода. Регистрация по ссылке.

18 Апр 2018

Как правильно удалить ключ у объекта с помощью delete

Всем привет, с вами JSExpert и сегодня в коротком уроке мы рассмотрим один интересный вопрос, а именно как удалить ключ объекта и как не нужно удалять элементы массива.

Для удаления элементов можно использовать ключевое слово delete. Но есть нюанс. Давайте рассмотрим на примере:

const index = {
    k1: 'first', k2: 'second', k3: 'last'
};
   
const letters = ['a', 'b', 'c'];

У нас есть простой объект index, с ключами k1, k2, k3 и массив letters, с значениями ‘a’, ‘b’, ‘c’.

Давайте удалим ключ с объекта index. Для этого пишем перед именем объекта ключевое слово delete, а после имени объекта через точку указываем ключ, который хотим удалить, в нашем случае это ключ k2.

delete index.k2;
console.log(index);

Выведем результат в консоль:

{ k1: 'first', k3: 'last' }

Как видим, ключ удалился и мы получили желаемый результат. Теперь, попробуем сделать тоже самое с массивом letters и удалим элемент с индексом 1.

delete letters[1];
console.log(letters, letters.length);

В консоли выведем результат, а именно сам массив letters и его длину:

[ 'a', undefined, 'c' ]
 3

Тут нас ожидает сюрприз. Применяя delete к определённому индексу массива вы не удаляете элемент, вы удаляете значение самого элемента, и оно становится пустым, а именно undefined. Длина массива же остаётся неизменной. По сути, мы не удалили элемент, а сделали его пустым и он всё так же по прежнему находится в массиве.

В одном из следующих видео мы покажем вам один из возможных способов, как правильно удалять элемент из массива.

На этом сегодня всё, всем пока!