c125a9964a6f42b5cb01ad2ee1d9c83284be0c8b
[platform/framework/web/crosswalk-tizen.git] /
1 var unique = require('./unique');
2 var filter = require('./filter');
3 var 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