0 added
0 removed
Original
2026-01-01
Modified
2026-02-26
1
<p>В JavaScript не существует простого способа удалить элемент из массива. Инструкция delete интуитивно понятна, но она лишь очищает значение, но сама ячейка никуда не девается:</p>
1
<p>В JavaScript не существует простого способа удалить элемент из массива. Инструкция delete интуитивно понятна, но она лишь очищает значение, но сама ячейка никуда не девается:</p>
2
<p>А метод<a>splice</a>требует обращаться к элементу более сложными способами, чем это было бы на интуитивном уровне.</p>
2
<p>А метод<a>splice</a>требует обращаться к элементу более сложными способами, чем это было бы на интуитивном уровне.</p>
3
<p>При этом задача удаления возникает регулярно. Причем обычно удаляется не один элемент, а набор элементов по определенным правилам. Например, довольно распространена операция<em>compact</em>- удаление null значений из массива. Как правильно ее реализовать?</p>
3
<p>При этом задача удаления возникает регулярно. Причем обычно удаляется не один элемент, а набор элементов по определенным правилам. Например, довольно распространена операция<em>compact</em>- удаление null значений из массива. Как правильно ее реализовать?</p>
4
<p>В подавляющем большинстве ситуаций изменение массива должно трансформироваться в создание нового массива, в котором отсутствуют удаляемые элементы. Ниже пример реализации функции compact()</p>
4
<p>В подавляющем большинстве ситуаций изменение массива должно трансформироваться в создание нового массива, в котором отсутствуют удаляемые элементы. Ниже пример реализации функции compact()</p>
5
<p>Главное, на что нужно обратить внимание, - не происходит ли модификаций исходного массива coll. Вместо этого создается новый массив result, который наполняется только подходящими под условие значениями. Именно так нужно воспринимать фразу "удалить из массива что-то". Код, использующий новый массив, меньше подвержен ошибкам, проще в отладке и оставляет больше возможностей для анализа. Вы всегда можете посмотреть исходный массив, если что-то пошло не так. Вы всегда можете наблюдать за процессом наполнения результирующего массива, что позволит четко отследить правильность поставленных условий.</p>
5
<p>Главное, на что нужно обратить внимание, - не происходит ли модификаций исходного массива coll. Вместо этого создается новый массив result, который наполняется только подходящими под условие значениями. Именно так нужно воспринимать фразу "удалить из массива что-то". Код, использующий новый массив, меньше подвержен ошибкам, проще в отладке и оставляет больше возможностей для анализа. Вы всегда можете посмотреть исходный массив, если что-то пошло не так. Вы всегда можете наблюдать за процессом наполнения результирующего массива, что позволит четко отследить правильность поставленных условий.</p>
6
<p>По сути, код выше - пример агрегации. Только в отличие от предыдущих примеров, в которых результатом был примитивный тип, здесь результат - массив. Это совершенно нормально. Как вы увидите в дальнейшем, результат может быть и более сложной структурой. Сама операция прореживания (удаления элементов по определенным условиям) массива обычно называется<strong>фильтрацией</strong>.</p>
6
<p>По сути, код выше - пример агрегации. Только в отличие от предыдущих примеров, в которых результатом был примитивный тип, здесь результат - массив. Это совершенно нормально. Как вы увидите в дальнейшем, результат может быть и более сложной структурой. Сама операция прореживания (удаления элементов по определенным условиям) массива обычно называется<strong>фильтрацией</strong>.</p>