Общие элементы массивов

prog1c 140 7 7

Функция возвращает общие элементы (пересечение) двух массивов

Функция ОбщиеЭлементыМассивов(Массив1, Массив2)

	Результат = Новый Массив;
	
	Для каждого ЭлементМассива Из Массив1 Цикл
		Если Массив2.Найти(ЭлементМассива) <> Неопределено И
				Результат.Найти(ЭлементМассива) = Неопределено Тогда
			Результат.Добавить(ЭлементМассива);
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;

КонецФункции // ОбщиеЭлементыМассивов()
4

Комментарии

mailrum2004
#1, 27 июля 2021 21:24

Зачем здесь второй цикл?


markers
#2, 28 июля 2021 02:43

(1) mailrum2004, Действительно не понятно зачем 😉 Если задача получить общие для двух массивов элементы, то первый цикл, прекрасно выполнит свою работу.


bolsun
#3, 30 июля 2021 11:56

Добавил вариант без второго цикла, т.к. он действительно не нужен. Но может мы ошибаемся и автор объяснит его назначение ))

Функция ОбщиеЭлементыМассивов(Массив1, Массив2)

	Результат = Новый Массив;
	
	Для каждого ЭлементМассива Из Массив1 Цикл
		Если Массив2.Найти(ЭлементМассива) <> Неопределено И
				Результат.Найти(ЭлементМассива) = Неопределено Тогда
			Результат.Добавить(ЭлементМассива);
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;

КонецФункции // ОбщиеЭлементыМассивов()


prog1c
#4, ред. 14 августа 2021 03:46

Второй цикл действительно не нужен ))
Поправил


См. также

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

УдалитьПовторяющиесяЭлементыМассива (БСП)

Удалить повторяющиеся элементы массива

УдалитьНепроверяемыеРеквизитыИзМассива (БСП)

ПолучитьЭлементОбщаяПроизводительностьСистемы (БСП)

Удалить повторяющиеся элементы массива

Сортировка слиянием

СократитьМассив (БСП)

СпискиЗначенийИдентичны (БСП)

Модератору