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

prog1c 59 2 5

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

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

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

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

Рекомендации

См. также

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

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

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

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

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

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

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

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

Сравнение двух массивов

Обновлятор-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.Найти(ЭлементМассива) <> Неопределено И
				Результат.Найти(ЭлементМассива) = Неопределено Тогда
			Результат.Добавить(ЭлементМассива);
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;

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


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

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


Модератору