Π Π°Π±ΠΎΡ‚Π° с массивами Π² 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых частых Π·Π°Π΄Π°Ρ‡ ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΉ, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΎΠΊ ΠΈ ΠΎΡ‚Ρ‡Π΅Ρ‚ΠΎΠ². Однако стандартныС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ с коллСкциями Π½Π΅ всСгда ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ понятны, особСнно ΠΊΠΎΠ³Π΄Π° Ρ€Π΅Ρ‡ΡŒ ΠΈΠ΄Π΅Ρ‚ ΠΎΠ± ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнтов. Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ языков Π²Ρ€ΠΎΠ΄Π΅ Python ΠΈΠ»ΠΈ JavaScript, Π³Π΄Π΅ для этого Π΅ΡΡ‚ΡŒ дСсятки встроСнных ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ², Π² 1Π‘ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ приходится Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΌ Π½Π°Π±ΠΎΡ€ΠΎΠΌ инструмСнтов β€” ΠΈ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… ΠΈΠΌΠ΅Π΅Ρ‚ свои Π½ΡŽΠ°Π½ΡΡ‹.

Π­Ρ‚Π° ΡΡ‚Π°Ρ‚ΡŒΡ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒΡΡ, ΠΊΠ°ΠΊ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΡƒΠ΄Π°Π»ΡΡ‚ΡŒ строки ΠΈΠ· массивов Π² 1Π‘ 8.3 ΠΈ 8.2, избСгая Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Ρ… ошибок. ΠœΡ‹ рассмотрим Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(), Π½ΠΎ ΠΈ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ с большими Π½Π°Π±ΠΎΡ€Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, динамичСскими массивами ΠΈ структурированными коллСкциями. ОсобоС Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡƒΠ΄Π΅Π»ΠΈΠΌ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ β€” вСдь Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅Ρ‚ Π·Π°ΠΌΠ΅Π΄Π»ΠΈΡ‚ΡŒ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π² дСсятки Ρ€Π°Π·.

Если Π²Ρ‹ ΠΊΠΎΠ³Π΄Π°-Π½ΠΈΠ±ΡƒΠ΄ΡŒ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π»ΠΈΡΡŒ с ошибкой "ИндСкс Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива" ΠΈΠ»ΠΈ Π·Π°ΠΌΠ΅Ρ‡Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ послС удалСния элСмСнтов массив Π²Π΅Π΄Π΅Ρ‚ сСбя Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ β€” эта инструкция для вас. ΠœΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹Π΅ кСйсы ΠΈΠ· ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ, очистку пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΌΠΈ массивами.

1. Π‘Π°Π·ΠΎΠ²Ρ‹ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄: Π£Π΄Π°Π»ΠΈΡ‚ΡŒ()

Π‘Π°ΠΌΡ‹ΠΉ ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½Ρ‹ΠΉ способ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт ΠΈΠ· массива Π² 1Π‘ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ встроСнный ΠΌΠ΅Ρ‚ΠΎΠ΄ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(). Он Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΈ с ΠΎΠ΄Π½ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ, ΠΈ с ΠΌΠ½ΠΎΠ³ΠΎΠΌΠ΅Ρ€Π½Ρ‹ΠΌΠΈ массивами, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Ρ‚ΠΎΡ‡Π½ΠΎΠ³ΠΎ указания индСкса удаляСмого элСмСнта.

Бинтаксис ΠΌΠ΅Ρ‚ΠΎΠ΄Π° прост:

Массив.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс);

Π“Π΄Π΅ ИндСкс β€” порядковый Π½ΠΎΠΌΠ΅Ρ€ элСмСнта (начиная с 0). НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ элСмСнт ΠΈΠ· массива ΠœΠΎΠΈΠ”Π°Π½Π½Ρ‹Π΅, Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ:

ΠœΠΎΠΈΠ”Π°Π½Π½Ρ‹Π΅.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(2);

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ½ΠΈΡ‚ΡŒ Π΄Π²Π° ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… ΠΌΠΎΠΌΠ΅Π½Ρ‚Π°:

  • πŸ”Ή ПослС удалСния элСмСнта всС ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ Π²Π»Π΅Π²ΠΎ, Π° Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΡƒΠΌΠ΅Π½ΡŒΡˆΠ°Π΅Ρ‚ΡΡ Π½Π° 1. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ индСксы элСмСнтов справа ΠΎΡ‚ ΡƒΠ΄Π°Π»Π΅Π½Π½ΠΎΠ³ΠΎ измСнятся.
  • πŸ”Ή Если ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Π½Π΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ индСкс (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 100 для массива ΠΈΠ· 10 элСмСнтов), 1Π‘ выбросит ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ "ИндСкс Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива".
πŸ’‘

ΠŸΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ элСмСнтов всСгда провСряйтС Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ Ρ€Π°Π·ΠΌΠ΅Ρ€ массива с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ свойства Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() + 1 (Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ индСксация начинаСтся с 0).

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ практичСского использования:

// Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ массив с 5 элСмСнтами

Π”Π°Π½Π½Ρ‹Π΅ = Новый Массив(5);

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π―Π±Π»ΠΎΠΊΠΎ");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π‘Π°Π½Π°Π½");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("АпСльсин");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π“Ρ€ΡƒΡˆΠ°");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Киви");

// УдаляСм "АпСльсин" (индСкс 2)

Π”Π°Π½Π½Ρ‹Π΅.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(2);

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ["Π―Π±Π»ΠΎΠΊΠΎ", "Π‘Π°Π½Π°Π½", "Π“Ρ€ΡƒΡˆΠ°", "Киви"]

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(Π”Π°Π½Π½Ρ‹Π΅, ", "));

Π§Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΠ΄Π΅Ρ‚, Ссли ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт Π² Ρ†ΠΈΠΊΠ»Π΅ ΠΏΠΎ этому ΠΆΠ΅ массиву?

ΠŸΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ элСмСнта Π² Ρ†ΠΈΠΊΠ»Π΅ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ... Из ... Π¦ΠΈΠΊΠ» ΠΈΠ»ΠΈ Для ... По ... Π¦ΠΈΠΊΠ» Π±Π΅Π· ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚ΠΈΡ€ΠΎΠ²ΠΊΠΈ счСтчика Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ пропуск элСмСнтов ΠΈΠ»ΠΈ Π²Ρ‹Ρ…ΠΎΠ΄ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ массива. НапримСр, ΠΏΡ€ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Π²Ρ‚ΠΎΡ€ΠΎΠ³ΠΎ элСмСнта Π² Ρ†ΠΈΠΊΠ»Π΅ Для i = 0 По Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ» индСксы "ΡΡŠΠ΅Π΄ΡƒΡ‚", ΠΈ Ρ‡Π°ΡΡ‚ΡŒ элСмСнтов останСтся Π½Π΅ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½ΠΎΠΉ.

2. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ: ΠΌΠ΅Ρ‚ΠΎΠ΄ Π€ΠΈΠ»ΡŒΡ‚Ρ€()

Когда Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌΡƒ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пустыС строки ΠΈΠ»ΠΈ числа мСньшС нуля), ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π€ΠΈΠ»ΡŒΡ‚Ρ€(). Π’ ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(), ΠΎΠ½ Π½Π΅ измСняСт исходный массив, Π° Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ, Ρ‡Ρ‚ΠΎ бСзопаснСС для слоТных ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ.

Бинтаксис:

ΠΠΎΠ²Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² = Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².Π€ΠΈΠ»ΡŒΡ‚Ρ€(УсловиС);

Π“Π΄Π΅ УсловиС β€” это лямбда-функция, которая Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π˜ΡΡ‚ΠΈΠ½Π° для элСмСнтов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΎΡΡ‚Π°Π²ΠΈΡ‚ΡŒ. НапримСр, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС пустыС строки:

Π”Π°Π½Π½Ρ‹Π΅ = Новый Массив;

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ВСст");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("123");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΡ€ΠΈΠΌΠ΅Ρ€");

// ΠžΡΡ‚Π°Π²Π»ΡΠ΅ΠΌ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ нСпустыС строки

ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅ = Π”Π°Π½Π½Ρ‹Π΅.Π€ΠΈΠ»ΡŒΡ‚Ρ€(Ѐункция(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ <> "" ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ);

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ["ВСст", "123", "ΠŸΡ€ΠΈΠΌΠ΅Ρ€"]

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅Π”Π°Π½Π½Ρ‹Π΅, ", "));

ΠŸΡ€Π΅ΠΈΠΌΡƒΡ‰Π΅ΡΡ‚Π²Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π€ΠΈΠ»ΡŒΡ‚Ρ€():

  • πŸ”Ή Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ: исходный массив Π½Π΅ измСняСтся, Ρ‡Ρ‚ΠΎ ΠΈΡΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ошибки ΠΏΡ€ΠΈ ΠΏΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ.
  • πŸ”Ή Π“ΠΈΠ±ΠΊΠΎΡΡ‚ΡŒ: ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ слоТныС условия с нСсколькими ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ.
  • πŸ”Ή Π§ΠΈΡ‚Π°Π΅ΠΌΠΎΡΡ‚ΡŒ ΠΊΠΎΠ΄Π°: Π»ΠΎΠ³ΠΈΠΊΠ° Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ ΠΎΡ‚Π΄Π΅Π»Π΅Π½Π° ΠΎΡ‚ основной ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹.

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ массив Π½Π΅ пустой|ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… элСмСнтов (число/строка/Π΄Π°Ρ‚Π°)|ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎΠ΅ условиС для Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΠΈ|Π£Ρ‡Ρ‚ΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΠžΠ’Π«Π™ массив|-->

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ с числовыми Π΄Π°Π½Π½Ρ‹ΠΌΠΈ β€” ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ:

Числа = Новый Массив;

Числа.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(10);

Числа.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(-5);

Числа.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(0);

Числа.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(-3);

Числа.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(8);

ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅Π§ΠΈΡΠ»Π° = Числа.Π€ΠΈΠ»ΡŒΡ‚Ρ€(Ѐункция(Число) Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Число >= 0 ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ);

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: [10, 0, 8]

Π‘ΠΎΠΎΠ±Ρ‰ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€Π‘ΠΎΠ΅Π΄ΠΈΠ½ΠΈΡ‚ΡŒ(ΠŸΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅Π§ΠΈΡΠ»Π°, ", "));

3. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π΅: особСнности ΠΈ Π»ΠΎΠ²ΡƒΡˆΠΊΠΈ

Иногда трСбуСтся ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты массива Π² процСссС ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΠΈ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ Π±Π°Π·Ρ‹. Однако прямоС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² Ρ†ΠΈΠΊΠ»Π΅ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ... Из ... ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ пропуску элСмСнтов ΠΈΠ»ΠΈ ошибкам, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ послС удалСния индСксы ΡΠ΄Π²ΠΈΠ³Π°ΡŽΡ‚ΡΡ, Π° Ρ†ΠΈΠΊΠ» ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со старыми индСксами.

Рассмотрим Ρ‚ΠΈΠΏΠΈΡ‡Π½ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

Π”Π°Π½Π½Ρ‹Π΅ = Новый Массив;

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(1);

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(2);

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(3);

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(4);

// ΠΠ•ΠŸΠ ΠΠ’Π˜Π›Π¬ΠΠž: ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ‡Π΅Ρ‚Π½Ρ‹Ρ… чисСл Π² прямом Ρ†ΠΈΠΊΠ»Π΅

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Π”Π°Π½Π½Ρ‹Π΅ Π¦ΠΈΠΊΠ»

Если Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ % 2 = 0 Π’ΠΎΠ³Π΄Π°

Π”Π°Π½Π½Ρ‹Π΅.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π”Π°Π½Π½Ρ‹Π΅.Найти(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚)); // Ошибка: индСксы ΡΡŠΠ΅Π΄ΡƒΡ‚!

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

ΠŸΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ β€” ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΠ½Ρ†Π° массива ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ массив для хранСния индСксов удаляСмых элСмСнтов:

Бпособ 1. Π¦ΠΈΠΊΠ» с ΠΊΠΎΠ½Ρ†Π°:

Для i = Π”Π°Π½Π½Ρ‹Π΅.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() По 0 Π¨Π°Π³ -1 Π¦ΠΈΠΊΠ»

Если Π”Π°Π½Π½Ρ‹Π΅[i] % 2 = 0 Π’ΠΎΠ³Π΄Π°

Π”Π°Π½Π½Ρ‹Π΅.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(i);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Бпособ 2. Π‘Π±ΠΎΡ€ индСксов для удалСния:

Π˜Π½Π΄Π΅ΠΊΡΡ‹Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ = Новый Массив;

Для i = 0 По Π”Π°Π½Π½Ρ‹Π΅.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

Если Π”Π°Π½Π½Ρ‹Π΅[i] % 2 = 0 Π’ΠΎΠ³Π΄Π°

Π˜Π½Π΄Π΅ΠΊΡΡ‹Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(i);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

// УдаляСм с ΠΊΠΎΠ½Ρ†Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΡΠ±ΠΈΠ²Π°Ρ‚ΡŒ индСксы

Для i = Π˜Π½Π΄Π΅ΠΊΡΡ‹Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() - 1 По 0 Π¨Π°Π³ -1 Π¦ΠΈΠΊΠ»

Π”Π°Π½Π½Ρ‹Π΅.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π˜Π½Π΄Π΅ΠΊΡΡ‹Π”Π»ΡΠ£Π΄Π°Π»Π΅Π½ΠΈΡ[i]);

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

πŸ“Š Какой способ удалСния Π² Ρ†ΠΈΠΊΠ»Π΅ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Ρ‡Π°Ρ‰Π΅?
Π˜Ρ‚Π΅Ρ€Π°Ρ†ΠΈΡ с ΠΊΠΎΠ½Ρ†Π°
Π‘Π±ΠΎΡ€ индСксов для удалСния
ΠœΠ΅Ρ‚ΠΎΠ΄ Π€ΠΈΠ»ΡŒΡ‚Ρ€()
Π”Ρ€ΡƒΠ³ΠΎΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚

4. Π Π°Π±ΠΎΡ‚Π° с динамичСскими массивами ΠΈ коллСкциями

Π’ 1Π‘ 8.3 ΠΏΠΎΠΌΠΈΠΌΠΎ стандартных массивов Π΅ΡΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ Π³ΠΈΠ±ΠΊΠΈΠ΅ структуры Π΄Π°Π½Π½Ρ‹Ρ…: БписокЗначСний, Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, БоотвСтствиС ΠΈ Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°. ΠœΠ΅Ρ‚ΠΎΠ΄Ρ‹ удалСния Π² Π½ΠΈΡ… ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ, ΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, ΠΊΠΎΠ³Π΄Π° ΠΊΠ°ΠΊΠΎΠΉ Ρ‚ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ.

Π‘Ρ€Π°Π²Π½ΠΈΠΌ возмоТности:

Π’ΠΈΠΏ ΠΊΠΎΠ»Π»Π΅ΠΊΡ†ΠΈΠΈ ΠœΠ΅Ρ‚ΠΎΠ΄ удалСния ΠžΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΠΈ ΠŸΡ€ΠΈΠΌΠ΅Ρ€
Массив Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс) Ѐиксированный Ρ€Π°Π·ΠΌΠ΅Ρ€ послС создания, индСксация с 0 Масс.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(2)
БписокЗначСний Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅) ΠΈΠ»ΠΈ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс) ДинамичСский Ρ€Π°Π·ΠΌΠ΅Ρ€, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ Бписок.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ("Π£Π΄Π°Π»ΠΈΡ‚ΡŒ"))
Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) ΠΈΠ»ΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΊΠΎΠ»ΠΎΠ½ΠΎΠΊ, Ρ„ΠΈΠ»ΡŒΡ‚Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ Π’Π°Π±Π»ΠΈΡ†Π°.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°)
БоотвСтствиС Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ΠšΠ»ΡŽΡ‡) Π₯Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΠ°Ρ€ "ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅", Π½Π΅Ρ‚ индСксов Π‘ΠΎΠΎΡ‚Π².Π£Π΄Π°Π»ΠΈΡ‚ΡŒ("ΠΠ΅Π½ΡƒΠΆΠ½Ρ‹ΠΉΠšΠ»ΡŽΡ‡")

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Ρ€Π°Π±ΠΎΡ‚Ρ‹ со БпискомЗначСний:

Бписок = Новый БписокЗначСний;

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 1");

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 2");

Бписок.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 3");

// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ

Бписок.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Бписок.ΠΠ°ΠΉΡ‚ΠΈΠŸΠΎΠ—Π½Π°Ρ‡Π΅Π½ΠΈΡŽ("Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 2"));

// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ индСксу

Бписок.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(0); // Π£Π΄Π°Π»ΠΈΡ‚ "Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ 1"

Для Π’Π°Π±Π»ΠΈΡ†Ρ‹Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ часто ΡƒΠ΄ΠΎΠ±Π½Π΅Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ строк ΠΏΠΎ ΡƒΡΠ»ΠΎΠ²ΠΈΡŽ:

Π’Π°Π±Π»ΠΈΡ†Π° = Новый Π’Π°Π±Π»ΠΈΡ†Π°Π—Π½Π°Ρ‡Π΅Π½ΠΈΠΉ;

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("НаимСнованиС");

Π’Π°Π±Π»ΠΈΡ†Π°.Колонки.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ");

Π‘Ρ‚Ρ€ΠΎΠΊΠ° = Π’Π°Π±Π»ΠΈΡ†Π°.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ();

Π‘Ρ‚Ρ€ΠΎΠΊΠ°.НаимСнованиС = "Π’ΠΎΠ²Π°Ρ€ 1";

Π‘Ρ‚Ρ€ΠΎΠΊΠ°.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = 10;

// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ строки

Π’Π°Π±Π»ΠΈΡ†Π°.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°);

// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ всСх строк с ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = 0

Для КаТдого Π‘Ρ‚Ρ€ Из Π’Π°Π±Π»ΠΈΡ†Π° Π¦ΠΈΠΊΠ»

Если Π‘Ρ‚Ρ€.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ = 0 Π’ΠΎΠ³Π΄Π°

Π’Π°Π±Π»ΠΈΡ†Π°.Π‘Ρ‚Ρ€ΠΎΠΊΠΈ.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

πŸ’‘

Для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… Ρ‚Π°Π±Π»ΠΈΡ† (10 000+ строк) ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠΉΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ запроса ΠΈΠ»ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Π˜Π½Π΄Π΅ΠΊΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ(), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΠΊΠΎΡ€ΠΈΡ‚ΡŒ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅.

5. ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡ для Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с массивами Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ Π±ΠΎΠ»Π΅Π΅ 10 000 элСмСнтов стандартныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Π£Π΄Π°Π»ΠΈΡ‚ΡŒ() ΠΈΠ»ΠΈ Π€ΠΈΠ»ΡŒΡ‚Ρ€() ΠΌΠΎΠ³ΡƒΡ‚ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ. Π’ Ρ‚Π°ΠΊΠΈΡ… случаях стоит Ρ€Π°ΡΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Ρ‹:

  • πŸ”Ή Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ массива: вмСсто удалСния элСмСнтов построчно Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΠ΅ΠΌ Π½ΠΎΠ²Ρ‹ΠΉ массив Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π½ΡƒΠΆΠ½Ρ‹ΠΌΠΈ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ. Π­Ρ‚ΠΎ быстрСС, Ρ‡Π΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½ΠΎΠ΅ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅.
  • πŸ”Ή ИспользованиС запросов: Ссли Π΄Π°Π½Π½Ρ‹Π΅ хранятся Π² Π±Π°Π·Π΅, Π»ΡƒΡ‡ΡˆΠ΅ ΠΎΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈΡ… Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ SQL, Π° Π½Π΅ Π² памяти.
  • πŸ”Ή Π Π°Π·Π±ΠΈΠ΅Π½ΠΈΠ΅ Π½Π° части: для ΠΎΡ‡Π΅Π½ΡŒ Π±ΠΎΠ»ΡŒΡˆΠΈΡ… массивов ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚Π°ΠΌΠΈ ΠΏΠΎ 1 000-5 000 элСмСнтов.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ удалСния (созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ массива):

Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² = Новый Массив;

// ... заполняСм 50 000 элСмСнтов ...

// ВмСсто: Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ... Π£Π΄Π°Π»ΠΈΡ‚ΡŒ() ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ:

ΠΠΎΠ²Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² = Новый Массив;

Для КаТдого Π­Π»Π΅ΠΌΠ΅Π½Ρ‚ Из Π˜ΡΡ…ΠΎΠ΄Π½Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ² Π¦ΠΈΠΊΠ»

Если НЕ УсловиСДляУдалСния(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚) Π’ΠΎΠ³Π΄Π°

ΠΠΎΠ²Ρ‹ΠΉΠœΠ°ΡΡΠΈΠ².Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Π­Π»Π΅ΠΌΠ΅Π½Ρ‚);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Π‘Ρ€Π°Π²Π½Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ (тСст Π½Π° 100 000 элСмСнтов):

ΠœΠ΅Ρ‚ΠΎΠ΄ ВрСмя выполнСния (мс) ΠŸΠ°ΠΌΡΡ‚ΡŒ (ΠœΠ‘)
Π¦ΠΈΠΊΠ» с Π£Π΄Π°Π»ΠΈΡ‚ΡŒ() ~12 000 ~150
ΠœΠ΅Ρ‚ΠΎΠ΄ Π€ΠΈΠ»ΡŒΡ‚Ρ€() ~8 500 ~200
БозданиС нового массива ~3 200 ~250
Запрос ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ~1 800 ~50
πŸ’‘

Если Π²Π°ΠΌ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ 30% элСмСнтов массива, созданиС Π½ΠΎΠ²ΠΎΠ³ΠΎ массива Π±ΡƒΠ΄Π΅Ρ‚ эффСктивнСС, Ρ‡Π΅ΠΌ поэлСмСнтноС ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅.

6. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ ΠΊΠ°ΠΊ ΠΈΡ… ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ

Π”Π°ΠΆΠ΅ ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Π΅ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ 1Π‘ ΠΈΠ½ΠΎΠ³Π΄Π° ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ массивов послС удалСния элСмСнтов. Рассмотрим самыС распространСнныС ошибки ΠΈ способы ΠΈΡ… прСдотвращСния.

Ошибка 1. ИзмСнСниС индСксов Π² Ρ†ΠΈΠΊΠ»Π΅

Как ΡƒΠΆΠ΅ ΡƒΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΎΡΡŒ, ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² прямом Ρ†ΠΈΠΊΠ»Π΅ Для ... По ΠΈΠ»ΠΈ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ пропуску элСмСнтов. РСшСниС β€” ΠΈΡ‚Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ с ΠΊΠΎΠ½Ρ†Π° ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ массив для индСксов.

Ошибка 2. Π Π°Π±ΠΎΡ‚Π° с пустым массивом

Массив = Новый Массив;

Массив.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(0); // Ошибка: "ИндСкс Π²Π½Π΅ Π³Ρ€Π°Π½ΠΈΡ† массива"

ВсСгда провСряйтС Ρ€Π°Π·ΠΌΠ΅Ρ€ массива ΠΏΠ΅Ρ€Π΅Π΄ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ:

Если Массив.ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ() > 0 Π’ΠΎΠ³Π΄Π°

Массив.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(0);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Ошибка 3. Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ Π±Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ

ΠœΠ΅Ρ‚ΠΎΠ΄ Найти() Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ -1, Ссли элСмСнт Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½. ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΏΠΎ Ρ‚Π°ΠΊΠΎΠΌΡƒ индСксу Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ:

ИндСкс = Массив.Найти("ΠΠ΅ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉΠ­Π»Π΅ΠΌΠ΅Π½Ρ‚");

Если ИндСкс <> -1 Π’ΠΎΠ³Π΄Π°

Массив.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Ошибка 4. ΠœΠΎΠ΄ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΡ массива Π² лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

ΠŸΡ€ΠΈ использовании Π€ΠΈΠ»ΡŒΡ‚Ρ€() ΠΈΠ»ΠΈ Π‘ΠΎΡ€Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ() нСльзя ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ исходный массив Π²Π½ΡƒΡ‚Ρ€ΠΈ лямбда-Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ нСпрСдсказуСмому повСдСнию:

// ΠΠ•ΠŸΠ ΠΠ’Π˜Π›Π¬ΠΠž:

ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ = Массив.Π€ΠΈΠ»ΡŒΡ‚Ρ€(

Ѐункция(Π­Π») Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Массив.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(0); Π˜ΡΡ‚ΠΈΠ½Π°; ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

);

ΠŸΠΎΡ‡Π΅ΠΌΡƒ ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти() ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ индСкс?

Если Π² массивС Π΅ΡΡ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ΡΡ значСния, ΠΌΠ΅Ρ‚ΠΎΠ΄ Найти() Π²Π΅Ρ€Π½Π΅Ρ‚ индСкс ΠŸΠ•Π Π’ΠžΠ“Πž Π½Π°ΠΉΠ΄Π΅Π½Π½ΠΎΠ³ΠΎ элСмСнта. НапримСр, Π² массивС ["А", "Π‘", "А"] поиск ΠΏΠΎ "А" всСгда Π²Π΅Ρ€Π½Π΅Ρ‚ 0, Π΄Π°ΠΆΠ΅ Ссли Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ Π²Ρ‚ΠΎΡ€ΠΎΠΉ элСмСнт.

7. ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€: очистка массива ΠΎΡ‚ пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ

Рассмотрим Ρ€Π΅Π°Π»ΡŒΠ½ΡƒΡŽ Π·Π°Π΄Π°Ρ‡Ρƒ: Ρƒ нас Π΅ΡΡ‚ΡŒ массив строк, Ρ‡Π°ΡΡ‚ΡŒ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… пустыС ΠΈΠ»ΠΈ содСрТат Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΎΠ±Π΅Π»Ρ‹. НуТно ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС "мусорныС" элСмСнты.

Бпособ 1. Π‘ использованиСм Π€ΠΈΠ»ΡŒΡ‚Ρ€():

Π”Π°Π½Π½Ρ‹Π΅ = Новый Массив;

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ВСст");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(" ");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ("ΠŸΡ€ΠΈΠΌΠ΅Ρ€");

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(" ");

ЧистыСДанныС = Π”Π°Π½Π½Ρ‹Π΅.Π€ΠΈΠ»ΡŒΡ‚Ρ€(

Ѐункция(Π‘Ρ‚Ρ€ΠΎΠΊΠ°)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ НЕ ΠŸΡƒΡΡ‚Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°(Π‘Ρ‚Ρ€ΠΎΠΊΠ°) И НЕ Π‘Ρ‚Ρ€ΠΎΠΊΠ° = " ";

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

);

// Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚: ["ВСст", "ΠŸΡ€ΠΈΠΌΠ΅Ρ€"]

Бпособ 2. Π§Π΅Ρ€Π΅Π· Ρ†ΠΈΠΊΠ» (Ссли Π½ΡƒΠΆΠ½ΠΎ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ исходный массив):

i = 0;

Пока i <= Π”Π°Π½Π½Ρ‹Π΅.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() Π¦ΠΈΠΊΠ»

Если ΠŸΡƒΡΡ‚Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°(Π”Π°Π½Π½Ρ‹Π΅[i]) Или Π”Π°Π½Π½Ρ‹Π΅[i] = " " Π’ΠΎΠ³Π΄Π°

Π”Π°Π½Π½Ρ‹Π΅.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(i);

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚ΡŒ; // ΠŸΡ€ΠΎΠΏΡƒΡΠΊΠ°Π΅ΠΌ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ счСтчика

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

i = i + 1;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Бпособ 3. Π‘ использованиСм Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ() для Ρ‚Ρ€ΠΈΠΌΠΌΠΈΠ½Π³Π°:

ЧистыСДанныС = Π”Π°Π½Π½Ρ‹Π΅.Π€ΠΈΠ»ΡŒΡ‚Ρ€(

Ѐункция(Π‘Ρ‚Ρ€ΠΎΠΊΠ°)

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ НЕ ΠŸΡƒΡΡ‚Π°ΡΠ‘Ρ‚Ρ€ΠΎΠΊΠ°(Π‘Ρ‚Ρ€Π—Π°ΠΌΠ΅Π½ΠΈΡ‚ΡŒ(Π‘Ρ‚Ρ€ΠΎΠΊΠ°, " ", ""));

ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

);

πŸ’‘

Для очистки массива ΠΎΡ‚ пустых Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ Π€ΠΈΠ»ΡŒΡ‚Ρ€() ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡Ρ‚ΠΈΡ‚Π΅Π»ΡŒΠ½Π΅Π΅ Ρ†ΠΈΠΊΠ»ΠΎΠ² β€” ΠΎΠ½ ΠΏΡ€ΠΎΡ‰Π΅ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ΅ ΠΈ ΠΌΠ΅Π½Π΅Π΅ ΠΏΠΎΠ΄Π²Π΅Ρ€ΠΆΠ΅Π½ ошибкам.

FAQ: ЧастыС вопросы ΠΏΠΎ ΡƒΠ΄Π°Π»Π΅Π½ΠΈΡŽ строк ΠΈΠ· массива 1Π‘

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ всС элСмСнты массива сразу?

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ():

Массив.ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ();

Π­Ρ‚ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ всС элСмСнты, Π½ΠΎ сам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ массива останСтся (Π² ΠΎΡ‚Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ присваивания Массив = НСопрСдСлСно).

МоТно Π»ΠΈ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнт ΠΈΠ· массива ΠΏΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, Π½Π΅ зная индСкса?

Π”Π°, Π½ΠΎ для этого Π½ΡƒΠΆΠ½ΠΎ сначала Π½Π°ΠΉΡ‚ΠΈ индСкс с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° Найти():

ИндСкс = Массив.Найти("Π˜ΡΠΊΠΎΠΌΠΎΠ΅Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅");

Если ИндСкс <> -1 Π’ΠΎΠ³Π΄Π°

Массив.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(ИндСкс);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

Для массивов с Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠΌΠΈΡΡ значСниями этот ΠΌΠ΅Ρ‚ΠΎΠ΄ ΡƒΠ΄Π°Π»ΠΈΡ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠ΅Ρ€Π²ΠΎΠ΅ Π²Ρ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ послС удалСния элСмСнтов массив Π²Π΅Π΄Π΅Ρ‚ сСбя странно?

НаиболСС вСроятныС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

  1. Π’Ρ‹ ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΠ΅Ρ‚Π΅ массив Π² Ρ†ΠΈΠΊΠ»Π΅ Для ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ пропуску элСмСнтов.
  2. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π½Π΅Π²Π΅Ρ€Π½Ρ‹Π΅ индСксы (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послС удалСния индСксы ΡΠ΄Π²ΠΈΠ½ΡƒΠ»ΠΈΡΡŒ, Π° Π²Ρ‹ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ со старыми).
  3. Π’ массивС Π΅ΡΡ‚ΡŒ НСопрСдСлСно ΠΈΠ»ΠΈ NULL, Ρ‡Ρ‚ΠΎ влияСт Π½Π° ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ Π²Ρ€ΠΎΠ΄Π΅ Найти().

РСшСниС: ΠΎΡ‚Π»Π°ΠΆΠΈΠ²Π°ΠΉΡ‚Π΅ ΠΊΠΎΠ΄ пошагово, выводя Π² ΠΎΡ‚Π»Π°Π΄Ρ‡ΠΈΠΊ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ состояниС массива послС ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Как ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты ΠΈΠ· массива структур ΠΏΠΎ ΠΊΠ»ΡŽΡ‡Ρƒ?

Если Ρƒ вас массив структур, ΠΈ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ элСмСнты, Π³Π΄Π΅ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ»Π΅ Ρ€Π°Π²Π½ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π€ΠΈΠ»ΡŒΡ‚Ρ€():

Π”Π°Π½Π½Ρ‹Π΅ = Новый Массив;

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("Имя, Возраст", "Иван", 25));

Π”Π°Π½Π½Ρ‹Π΅.Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ(Новый Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°("Имя, Возраст", "ΠŸΠ΅Ρ‚Ρ€", 30));

// УдаляСм всСх с Возраст < 27

ΠžΡ‚Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ = Π”Π°Π½Π½Ρ‹Π΅.Π€ΠΈΠ»ΡŒΡ‚Ρ€(

Ѐункция(Π‘Ρ‚Ρ€ΡƒΠΊ) Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ Π‘Ρ‚Ρ€ΡƒΠΊ.Возраст >= 27; ΠšΠΎΠ½Π΅Ρ†Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ

);

Π•ΡΡ‚ΡŒ Π»ΠΈ Π² 1Π‘ Π°Π½Π°Π»ΠΎΠ³ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° splice() ΠΈΠ· JavaScript?

ΠŸΡ€ΡΠΌΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΎΠ³Π° Π½Π΅Ρ‚, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ splice() ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ²:

// Π£Π΄Π°Π»Π΅Π½ΠΈΠ΅ 2 элСмСнтов начиная с индСкса 1 (Π°Π½Π°Π»ΠΎΠ³ splice(1, 2))

Для i = 1 По 1 + 2 - 1 Π¦ΠΈΠΊΠ»

Если Массив.Π’Π“Ρ€Π°Π½ΠΈΡ†Π°() >= i Π’ΠΎΠ³Π΄Π°

Массив.Π£Π΄Π°Π»ΠΈΡ‚ΡŒ(i);

ΠšΠΎΠ½Π΅Ρ†Π•ΡΠ»ΠΈ;

ΠšΠΎΠ½Π΅Ρ†Π¦ΠΈΠΊΠ»Π°;

Для вставки элСмСнтов вмСсто ΡƒΠ΄Π°Π»Π΅Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Π’ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ() послС удалСния.