| 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 | 1 1 3 3 3 8 7 3 1 | define(['./unique', './filter', './contains'], function (unique, filter, contains) {
/**
* Exclusive OR. Returns items that are present in a single array.
* - like ptyhon's `symmetric_difference`
* @version 0.1.0 (2011/01/12)
*/
function xor(arr1, arr2) {
arr1 = unique(arr1);
arr2 = unique(arr2);
var a1 = filter(arr1, function(item){
return !contains(arr2, item);
}),
a2 = filter(arr2, function(item){
return !contains(arr1, item);
});
return a1.concat(a2);
}
return xor;
});
|