Есть много способов изменить массив в JavaScript, но мы сосредоточимся на наиболее практичных.
По сути, всегда следует различать те методы, которые изменяют исходный массив, и те, которые этого не делают. Это поможет вам избежать распространенных ошибок и ошибок в вашем коде.
Итак, давайте начнем с методов, которые напрямую изменяют массив.
Этот метод позволяет удалить последний элемент из массива. Удаленный элемент можно сохранить в новую переменную и использовать дальше.
Если вам нужно удалить первый элемент, используйте метод shift. Подобно pop, shift возвращает удаленное значение и изменяет исходный массив.
С помощью метода splice можно удалить (и даже заменить или добавить) любой элемент массива. Первый аргумент — это индекс, а второй аргумент — количество удаляемых элементов. Если элемент нужно удалить по значению, можно использовать метод indexOf.
Да, свойство length позволяет не только получить количество элементов в массиве, но и дает возможность сократить его, удалив все элементы, индексы которых превышают новое значение длины.
Все предыдущие методы модифицировали исходный массив, но иногда это последнее, что вам нужно. Например, в React и Redux общий подход заключается в том, чтобы не изменять данные. Конечно, вы можете сделать копию массива, а затем изменить ее, сохранив при этом оригинал. Но есть способы сделать это за один раз.
С помощью метода slice будет создана поверхностная копия массива. Он принимает два аргумента — начальный и конечный индексы (конец не включен). Следовательно, можно опустить последний элемент аналогично pop.
Кроме того, по аналогии с shift первый элемент также можно пропустить.
Параметр Rest имеет несколько вариантов использования, но он становится очень удобным, когда вам нужно создать новый массив без первого элемента, который будет сохранен в отдельной переменной.
Наконец, если вы не знаете точную позицию удаляемого элемента, на помощь приходит фильтр. Метод Фильтр создает новый массив с элементами, удовлетворяющими условию сравнения.
Сводка
Мы рассмотрели 7 наиболее практичных способов удаления элементов из массива. Как правило, если изменение исходного массива не является проблемой, лучше всего использовать pop(), shift(), splice () и длина. Тем не менее, если структура исходного массива должна оставаться неизменной, целесообразно использовать методы filter() и slice(), а также параметр rest синтаксис.