Пересечение и разность массивов на JavaScript

Пусть у нас даны два массива. Давайте найдем их пересечение - то есть одинаковые элементы, и разность - элементы, которых нет одновременно в обоих массивах.

Исходники кода

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]));

Смотрите также