Вход | Регистрация
 

Удаление элементов массива с условием

Удаление элементов массива с условием
Я
   Licklove4
 
16.12.18 - 20:25
Добрый день. Начал недавно учить 1с. Бьюсь над заданием уже 3ий день.
подскажите пожалуйста , что не так.
Суть задания : Создать Массив с помощью цикла с числами от 1 до 30
а затем , ИМЕННО после создания массива еще одним циклом удалить числа и массива кратные 3 ( 3 , 6 ,  9 и т д ).

Вот мой вариант:
Счетчик = 0;

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

Для Счетчик = 0 По 30 Цикл
    Массив.Добавить(Счетчик);
КонецЦикла;

Для каждого ЭлементМассива из Массив Цикл
    Если ЭлементМассива%3 = 0 тогда
        Массив.Удалить(ЭлементМассива);
    Иначе
        ЭлементМассива = ЭлементМассива + 1;
    КонецЕсли;
    Сообщить(ЭлементМассива);
КонецЦикла;

Были и еще варианты ,Но каждый раз в отладчике я получаю либо ничего, либо что Индекс находится за границами массива.Help
 
 
   Попытка1С
 
1 - 16.12.18 - 20:27
удалять надо в обратном порядке
   Licklove4
 
2 - 16.12.18 - 20:30
Извините, не могли бы вы продемонстрировать как это пишется, Я не спрашиваю готового решения в виде кода ко всему заданию, меня интересует как прописывается удаление эллементов массива в обратном порядке.
   Dmitry77
 
3 - 16.12.18 - 20:32
в  яндексе пишешь "1с удаление элементов массива". нажимаешь  искать, просматриваешь ссылки...
   Попытка1С
 
4 - 16.12.18 - 20:35
   Licklove4
 
5 - 16.12.18 - 20:35
Ладно закройте тему, я просто уже не хочу срач разводить,вас троллей по интернету хватает. Если бы это было в яндексе , то я бы сюда не написал
   Licklove4
 
6 - 16.12.18 - 20:36
Попытка1С , Благодярю!
   Михаил Козлов
 
7 - 16.12.18 - 20:39
Можно еще отобрать нужные элементы, а потом удалить их.
кУдалению = Новый Массив;
ДЛЯ каждого эл ИЗ Массив Цикл
  Если эл%3 = 0 Тогда кУдалению.Добавить(эл); КонецЕсли;
КонецЦикла;
ДЛЯ каждого эл ИЗ кУдалению Цикл
  Массив. Удалить(эл);
КонецЦикла;
   Попытка1С
 
8 - 16.12.18 - 20:40
(5) Ты плохо искал..
   Dmitry77
 
9 - 16.12.18 - 20:44
(5) первая же ссылка из  поиска
v8: Как правильно удалять элементы из массива в цикле?

там  даже  из  ЖКК написано:

Удаление элементов коллекции в цикле
--------------------------------------------------------------------------------
При необходимости удаления некоторых элементов из какой-либо коллекции элементов, обладающей свойством неявного сдвига элементов при удалении (например, таблица значений, набор записей регистра и т.д.), необходимо использовать следующий алгоритм:

КолвоЭлементовКоллекции = Коллекция.Количество(); 
Для ОбратныйИндекс = 1 По КолвоЭлементовКоллекции Цикл 
     ЭлементКоллекции = Коллекция[КолвоЭлементовКоллекции - ОбратныйИндекс]; 

     Если <Условие> Тогда 
          Коллекция.Удалить(ЭлементКоллекции); 
     КонецЕсли; 

КонецЦикла; 
 

Где Коллекция – обрабатываемая коллекция элементов.
   Licklove4
 
10 - 16.12.18 - 20:48
Михаил Козлов и остальные , еще раз спасибо.
пойду дальше трудиться
хорошего дня
   Licklove4
 
11 - 16.12.18 - 20:54
Михаил Козлов по вашему примеру выходит так же что в недиапазона индекс :)
   Zhuravlik
 
12 - 16.12.18 - 21:58
(0) ошибка "Создать Массив с помощью цикла с числами от 1 до 30 " <> Для Счетчик = 0 По 30 Цикл

(11) Вграница() вместо Количество()

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.