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 | 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` */ 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; }); |