Code coverage report for array/xor.js

Statements: 100% (10 / 10)      Branches: 100% (0 / 0)      Functions: 100% (5 / 5)      Lines: 100% (9 / 9)     

All files » array/ » xor.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 251             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;
 
});