Як видалити елемент масиву javascript
Детальна версія
Припустимо, у нас є простий масив рядків, наприклад:
Згідно з правилом найменшого подиву, масив має метод remove:
Гарні новини? Ми можемо її створити!
Але, перш за все, давайте подивимося, як це робиться стандартним способом:
Що робить функція splice? Все просто: вона видаляє елемент з індексом 1. Перший параметр - це індекс, а другий - кількість елементів, які необхідно видалити, починаючи з зазначеного індексу. Це все, що потрібно знати про функції splice. Якщо вам цікаво подивитися, які ще класні речі може робити функція splice, зверніться до документації MDN.
Але що, якщо я не знаю індекс елемента?
Ну, ви можете отримати його. Просто використовуйте метод indexOf, в такий спосіб:
Будь ласка, зверніть увагу, що Internet Explorer 8-ий і більш ранніх версій не підтримує indexOf (для таких випадків можна використовувати поліфілл).
Розширення об'єкта Array
Це функція, яку я, нарешті, придумав.
Я знаю, що деякі люди не вважають розширення Array хороше рішення, оскільки, як вони стверджують, це може привести до небажаних наслідків. Проте, я думаю, що функцію remove набагато легше запам'ятати і використовувати, ніж splice, і чесно кажучи, я не бачу ніяких недоліків у використанні цього підходу. Що ви думаєте?
Повний приклад (як зазвичай, для консолі браузера):
Круто! Але. чому я не можу використовувати ключове слово delete?
І це буде працювати. Але цей спосіб має недолік: він не просто видалити елемент з масиву, а насправді замінить його на значення undefined. наприклад:
Це може призводити до несподіваних результатів:
На закінчення, якщо ви не дбаєте про ці недоліки, ви можете використовувати ключове слово delete; в іншому випадку - використовувати рішенням, описане вище.
Знайшли друкарську помилку? Orphus: Ctrl + Enter