Запропонувати правкуПокращити цю статтюДопрацюйте відповідь до «delete arr[0]». Ваші зміни проходять модерацію перед публікацією.Потрібне підтвердженняКонтентЩо ви змінюєте🇺🇸EN🇺🇦UAПереглядЗаголовок (UA)Коротка відповідь (UA)**`delete arr[index]`** видаляє властивість з масиву, але залишає на її місці порожній слот і не змінює `length`. **Ключове:** для безпечного видалення елемента з масиву слід використовувати `splice()`, а не `delete`.Показується над повною відповіддю для швидкого нагадування.Відповідь (UA)Зображення## Коротка відповідь: ```javascript const arr = [10, 20, 30]; delete arr[0]; console.log(arr); // [ <1 empty item>, 20, 30 ] console.log(arr.length); // 3 ``` Елемент з індексом `0` **видалиться**, але його місце залишиться **порожнім (empty)** - довжина масиву **не зміниться**. ## Що відбувається "під капотом" - `delete` **видаляє властивість** з об'єкта (а масив - це об'єкт з числовими ключами). - При цьому **не зсуває решту елементів** і **не змінює** `length`. - У підсумку в масиві з'являється **"дірка"** - так званий *порожній слот*. ## Демонстрація: ```javascript const arr = [1, 2, 3]; delete arr[1]; console.log(arr); // [1, <1 empty item>, 3] console.log(arr.length); // 3 console.log(1 in arr); // false - елемента реально немає ``` ## Чому це не рекомендується Такі "порожні комірки" поводяться дивно: - `forEach`, `map`, `filter` та інші методи **пропускають** їх: ```javascript arr.forEach(el => console.log(el)); // виведе лише 1 та 3 ``` - Але при прямому зверненні (`arr[1]`) поверне `undefined`. ## Правильний спосіб видалити елемент Використовуй `splice()`, якщо потрібно зсунути решту елементів: ```javascript const arr = [10, 20, 30]; arr.splice(0, 1); console.log(arr); // [20, 30] console.log(arr.length); // 2 ``` ## Коротко: | Метод | Що робить | Змінює length | Створює "дірку"? | | --- | --- | --- | --- | | `delete arr[i]` | видаляє властивість | Ні | Так | | `arr.splice(i, 1)` | видаляє елемент і зсуває | Так | Ні | > **Висновок:** > `delete arr[index]` краще не використовувати для масивів - > він залишає "порожні слоти" і робить структуру "рваною". > Використовуй `splice()` для безпечного видалення.Для рев’юераПримітка для модератора (необов’язково)Бачить лише модератор. Прискорює рев’ю.