JavaScript: как удалить значения из массива

Java Script

Массивом именуется упорядоченный тип данных, хранящий несколько значений. Это значит, что любой элемент в массиве имеет числовой идентификатор (индекс), который употребляется для ссылки на его пространство в строке.

Массивы начинаются с индекса 0 и растут на 1 для всякого значения. Для воззвания к значению в массиве воспользуйтесь подходящим индексом и заключите его в квадратные скобки [] .

Но что, если мы захотим удалить значение из нашего массива? Для этого существует четыре метода, любой из которых имеет свои плюсы и минусы, о которых побеседуем ниже.

Примечание: все четыре метода доступны без какого-нибудь импорта доп библиотек.

Через ключевое слово delete

Если вы не любите сложностей, то воспользуйтесь простым способом удаления значений из массива — главным словом delete . Для вас необходимо всего только указать имя переменной с индексом, который желаете удалить.

Но будьте внимательны. Невзирая на кажущуюся простоту данного метода, он нередко приводит к излишней мигрени, так как сейчас в вашем массиве зияет дыра.

Главный вывод: при удалении значения из массива через delete задайте для себя вопросец: «Необходимо ли мне переиндексировать массив?».

Через способ pop()

Для вас необходимо удалить самое огромное индексное значение из массива? Либо же вы желаете переиндексировать массив так, чтоб избавиться от undefined в конце? Тогда способ pop() — это то, что доктор прописал.

Через способ splice()

Если вы желаете удалить определенное значение из массива, а не определенный индекс, и вы готовы к переиндексации массива, то приглядитесь к способу splice() .

Сплайсинг массива делает новейший массив, который удаляет некоторое количество значений и обрезает массив слева, начиная с определенного индекса.

Если же вы желаете удалить лишь одно значение, то воспользуйтесь вторым (не неотклонимым) параметром в способе splice() .

Направьте внимание, что мы не выводим итог массива сходу. Это поэтому, что данный способ будет возвращать удаленные значения.

Все, естественно, круто и здорово, но в настоящих примерах для вас, навряд ли, получится захардкодить значение индекса. Потому давайте воспользуемся способом indexOf() для поиска индекса значения, соответственного условию.

Условие if в этом коде употребляется для того, чтоб подтвердить нахождение значения в массиве. Если же значение не найдено, то способ indexOf() возвратит -1 . Таковым образом, если i больше либо равно 0 , то это значение было найдено в массиве.

Интересно почитать:  Снять защиту листа excel

Через способ filter()

Способ splice() очень комфортен для нахождения и удаления 1-го значения. Но случается так, что для вас необходимо удалить все вхождения значения (либо условия) из массива. В таком случае, вашим новеньким другом станет способ filter() .

Этот способ воспринимает функцию в качестве аргумента и сохраняет значения, надлежащие true в функции filter . Чтоб отфильтровать определенное значение, нужно проверить отрицательные индексы.

Направьте внимание, что нам приходится поновой присваивать номера индексов. Дело в том, что, в отличие от способа splice() , filter() возвращает новейший массив, а не делает деяния с начальными данными.

Заключение

Это не все методы удаления значений из массива, да и посреди обозначенных сможете избрать способ по нраву либо же придумать что-то свое.

JavaScript | Как удалить 1-ый элемент массива?

Мы желаем удалить 1-ый элемент массива. Здесь есть два варианта:

Различие этих 2-ух вариантов в том, что мы — или изменяем длину массива, или не изменяем длину массива.

Изначальная длина массива равна 5:

Длина массива равна пяти - JavaScript

Длина массива равна 5 — JavaScript

Удаление первого элемента массива без сдвига — без конфигурации длины массива

В этом случае мы воспользуемся зарезервированным словом delete и удалим ненадобное ЗНАЧЕНИЕ первого ЭЛЕМЕНТА массива. Принципиальный момент. Мы удалим лишь значение под ИНДЕКСОМ. Сам индекс остается в массиве. В ответ мы будем получать undefined , когда будем обращаться к первому элементу массива.

Запись будет смотреться так:

Такое удаление первого элемента будет сохранять длину самого массива.

Нам вернётся 5 . Длина не поменяется, но покажется «дырка» в массиве.

Оператором delete удалили значение первого элемента массива - JavaScript

Оператором delete удалили значение первого элемента массива — JavaScript

Если на данный момент мы обратимся к первому элементу массива, то в ответ мы получим:

Это означает, что под индексом ноль нет никакого значения. Оно было удалено.

Удаление первого элемента массива со сдвигом — с конфигурацией длины массива

Этот метод подступает в том случае, если мы желаем стопроцентно убрать 1-ый элемент из массива и двинуть элементы в уникальном массиве. Поможет нам в этом способ shift() .

Интересно почитать:  Как в эксель восстановить предыдущую версию файла

Нам вернётся значение первого элемента массива. Оно нам не надо, просто так работает сам способ shift() . Опосля вызова в уникальном массиве произойдут конфигурации.

Метод shift удалил первый элемент из массива - JavaScript

Способ shift удалил 1-ый элемент из массива — JavaScript

Длина уже будет равна 4, а не 5.

С помощью способа slice() без повреждения оригинала

Другими словами мы желаем убрать и ЗНАЧЕНИЕ и ИНДЕКС в клонированном массиве. В итоге длина массива уменьшится на единицу и в таком массиве не будет «дырок».

В этом нам поможет способ slice() , который умеет выбирать «куски» массива. Он может принимать два параметра: начало и окончание. Если мы передадим лишь один параметр начала, тогда нам возвратятся все оставшиеся элементы до конца массива.

Команда будет смотреться так:

Удалили первый элемент массива - JavaScript

Удалили 1-ый элемент массива — JavaScript

В чём здесь разница с первым вариантом? Способ slice() возвращает нам новейший массив, не повреждая необычного массива. Другими словами мы получаем новейший экземпляр класса Array. И позже в новеньком массиве мы удаляем 1-ый элемент (в клоне удаляем 1-ый элемент, а не в оригинале).

Оригинальный массив не изменился - длина 5 - JavaScript

Уникальный массив не поменялся — длина 5 — JavaScript

Как удалить элемент из массива в JavaScript

Перевод статьи «Remove element from an array».

Photo by Anne Nygård on Unsplash

Удалить один либо большее число частей из уже имеющегося массива — всераспространенная задачка в программировании. В JavaScript есть несколько вариантов ее решения, от обычных до наиболее сложных. Выбор пригодного решения зависит от ваших нужд. Необходимо ли для вас решение, изменяющее начальный массив? Нужно ли удалить элемент по значению либо по индексу? Необходимо убрать один либо несколько частей? В общем, давайте поглядим, какие у нас есть варианты.

Удаление хоть какого элемента с помощью способа filter

Способ filter() — самое всепригодное решение. С его помощью можно удалить как один, так и несколько частей, при этом хоть по значению, хоть по индексу. Это неизменяемое решение. С его помощью, фактически, не элемент удаляется, а создается новейший массив, из которого отфильтровываются ненужные элементы. Этот способ обширно поддерживается, даже в Internet Explorer. Сопоставимость можно проверить тут.

Интересно почитать:  Excel для чего нужен

Способ filter() воспринимает в качестве параметра функцию оборотного вызова, которая будет вызываться со последующими аргументами:

  1. Значение (value) элемента (этот аргумент неотклонимый).
  2. Индекс (index) элемента — опционально.
  3. Начальный массив — тоже опционален.

Результирующий массив будет содержать элементы, для которых возвращаемое значение callback-функции будет настоящим.

Способ filter() можно использовать в малогабаритном виде — с внедрением стрелочных функций. Это можно созодать, если вам не принципиальна поддержка IE.

Удаление определенного объекта

Даже если ваш массив содержит объекты, а не базисные типы данных, способ filter() все равно сработает. Просто необходимо найти callback-функцию подходящим образом.

Удаление первого элемента

Пожалуй, самый обычный вариант удаления элемента из массива — удаление первого элемента. Для примера можно взять FIFO-очередь. В этом случае для удаления первого элемента можно пользоваться способом shift(). Этот способ возвращает удаленный элемент, так что вы можете как-то его обработать при желании. В отличие от filter(), способ shift() изменяет начальный массив.

Удаление крайнего элемента

Весьма схожий вариант, лишь для случаев удаления элемента из LIFO-стека. Для удаления крайнего элемента массива можно применять способ pop(). Работает он аналогично способу shift(), который мы разбирали в прошлом разделе.

Удаление определенного элемента по индексу

Если вы желаете удалить из массива некий определенный элемент, можно пользоваться способом splice(). Этот способ умеет не только лишь удалять элементы, да и добавлять новейшие.

С помощью способа splice() можно удалить и больше 1-го элемента за раз. Для этого в качестве первого параметра укажите исходный индекс. Вторым параметром идет число частей, которые вы желаете удалить. Этот 2-ой параметр опционален. Если вы его не укажете, способ удалит обозначенный в первом параметре элемент, также все элементы справа от него.

Так как способ splice() употребляет индексы массива, если вы возжелаете удалить элемент по значению, поначалу придется отыскать его индекс.

Внедрение delete

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

Ссылка на основную публикацию
Adblock
detector