Пересечение массивов

Задача.
Напишите сценарий, который по двум массивам строит третий, являющийся пересечением заданных.

Ниже представлены три варианта решения в виде трех функций.
В третей функции intersect3 (доработанный вариант функции intersect1) – наиболее верная реализация, поскольку исключаются повторяющиеся элементы. Аналогично, можно доработать функцию intersect2.
var arr1 = [1,2,3,4,5,6,7];
var arr2 = [9,8,7,6,5,4,3,4];

function intersect1(arr1, arr2) {
	var arr3 = [];
	for(i = 0; i < arr1.length; i++) {
		for(j = 0; j < arr2.length; j++) {
			if (arr1[i] == arr2[j]) {
				arr3.push(arr1[i]);				
			}
		}
	}
	return arr3;
}
document.write(intersect1(arr1, arr2));

function intersect2(arr1, arr2) {
    var idx = 0, arr3 = [];
    for (i=0; i < arr2.length; i++) {         
        idx = arr1.indexOf(arr2[i]);         
        if (idx >= 0) arr3.push(arr2[i]);
    }
    return arr3;
}
document.write(intersect2(arr1, arr2));

function intersect3(arr1, arr2) {
	var arr3 = [];
	for(i = 0; i < arr1.length; i++) {
		for(j = 0; j < arr2.length; j++) {
			if (arr1[i] == arr2[j]) {
				var is_duplicate = false;
				for (k = 0; k < arr3.length; k++) {
					if (arr1[i] == arr3[k]) {
						is_duplicate = true;
					}	
				}
				if (is_duplicate == false) {
					arr3.push(arr1[i]);				
				}
			}
		}
	}
	return arr3;
}
document.write(intersect3(arr1, arr2));
Теги:
length, function, duplicate, intersect1, write, document, return, intersect3, intersect2, функции, false, функцию, элементы, доработать, indexOf, можно, Аналогично, массивов , повторяющиеся, исключаются, Задача, реализация, вариант, третей, решения, варианта, представлены, пересечением, являющийся, строит, массивам, Напишите, поскольку
Добавлено: 12 Июля 2018 21:02:11 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...