Пусть у нас даны два массива. Давайте найдем их пересечение - то есть одинаковые элементы, и разность - элементы, которых нет одновременно в обоих массивах.
Исходники кода
function getDiff(arr1, arr2) {
var result = [];
result = result.concat(getFirstDiff(arr1, arr2));
result = result.concat(getFirstDiff(arr2, arr1));
return result;
}
function getFirstDiff(arr1, arr2) {
var result = [];
for (var i = 0; i < arr1.length; i++) {
if (!inArray(arr2, arr1[i])) {
result.push(arr1[i]);
}
}
return result;
}
function getInt(arr1, arr2) {
var result = [];
for (var i = 0; i < arr1.length; i++) {
if (inArray(arr2, arr1[i])) {
result.push(arr1[i]);
}
}
return result;
}
function inArray(arr, elem) {
if (arr.indexOf(elem) === -1) {
return false;
} else {
return true;
}
}
function inArray_(arr, elem) {
for (var i = 0; i < arr.length; i++) {
if (arr[i] === elem) {
return true;
}
}
return false;
}
console.log(getDiff([1, 2, 3], [2, 3, 4, 5]));
console.log(getInt([1, 2, 3], [2, 3, 4, 5]));