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