HTML Diff
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>