Задача.
Напишите сценарий, который по двум массивам строит третий, являющийся пересечением заданных.
Ниже представлены три варианта решения в виде трех функций.
В третей функции 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));