Javascript пересечение массивов
01 Июл 2013
Задача.
Напишите сценарий, который по двум массивам строит третий, являющийся пересечением заданных.
Ниже представлены три варианта решения в виде трех функций.
В третей функции intersect3
(доработанный вариант функции intersect1
) – наиболее верная реализация, поскольку исключаются повторяющиеся элементы. Аналогично, можно доработать функцию intersect2
.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 |
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)); |
Свежие комментарии