Як видалити елемент масиву javascript

Детальна версія

Припустимо, у нас є простий масив рядків, наприклад:

Згідно з правилом найменшого подиву, масив має метод remove:

Гарні новини? Ми можемо її створити!

Але, перш за все, давайте подивимося, як це робиться стандартним способом:

Що робить функція splice? Все просто: вона видаляє елемент з індексом 1. Перший параметр - це індекс, а другий - кількість елементів, які необхідно видалити, починаючи з зазначеного індексу. Це все, що потрібно знати про функції splice. Якщо вам цікаво подивитися, які ще класні речі може робити функція splice, зверніться до документації MDN.

Але що, якщо я не знаю індекс елемента?

Ну, ви можете отримати його. Просто використовуйте метод indexOf, в такий спосіб:

Будь ласка, зверніть увагу, що Internet Explorer 8-ий і більш ранніх версій не підтримує indexOf (для таких випадків можна використовувати поліфілл).

Розширення об'єкта Array

Це функція, яку я, нарешті, придумав.

Я знаю, що деякі люди не вважають розширення Array хороше рішення, оскільки, як вони стверджують, це може привести до небажаних наслідків. Проте, я думаю, що функцію remove набагато легше запам'ятати і використовувати, ніж splice, і чесно кажучи, я не бачу ніяких недоліків у використанні цього підходу. Що ви думаєте?

Повний приклад (як зазвичай, для консолі браузера):

Круто! Але. чому я не можу використовувати ключове слово delete?

І це буде працювати. Але цей спосіб має недолік: він не просто видалити елемент з масиву, а насправді замінить його на значення undefined. наприклад:

Це може призводити до несподіваних результатів:

На закінчення, якщо ви не дбаєте про ці недоліки, ви можете використовувати ключове слово delete; в іншому випадку - використовувати рішенням, описане вище.

Знайшли друкарську помилку? Orphus: Ctrl + Enter