UNPKG

613 BJavaScriptView Raw
1var unique = require('./unique');
2var filter = require('./filter');
3var contains = require('./contains');
4
5
6 /**
7 * Exclusive OR. Returns items that are present in a single array.
8 * - like ptyhon's `symmetric_difference`
9 */
10 function xor(arr1, arr2) {
11 arr1 = unique(arr1);
12 arr2 = unique(arr2);
13
14 var a1 = filter(arr1, function(item){
15 return !contains(arr2, item);
16 }),
17 a2 = filter(arr2, function(item){
18 return !contains(arr1, item);
19 });
20
21 return a1.concat(a2);
22 }
23
24 module.exports = xor;
25
26