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

prog1c 50 1 5

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

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

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

КонецФункции // ОбщиеЭлементыМассивов()
Обновлятор-1С: групповое (пакетное) обновление и обслуживание всех баз за один раз

Комментарии

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

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


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

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


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

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

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

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

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


Похожие публикации

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

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

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

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

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

Модератору