Blame view

node_modules/lodash-compat/array/xor.js 946 Bytes
f7563de62   Palak Handa   first commit
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
27
28
29
30
31
32
33
34
35
  var arrayPush = require('../internal/arrayPush'),
      baseDifference = require('../internal/baseDifference'),
      baseUniq = require('../internal/baseUniq'),
      isArrayLike = require('../internal/isArrayLike');
  
  /**
   * Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
   * of the provided arrays.
   *
   * @static
   * @memberOf _
   * @category Array
   * @param {...Array} [arrays] The arrays to inspect.
   * @returns {Array} Returns the new array of values.
   * @example
   *
   * _.xor([1, 2], [4, 2]);
   * // => [1, 4]
   */
  function xor() {
    var index = -1,
        length = arguments.length;
  
    while (++index < length) {
      var array = arguments[index];
      if (isArrayLike(array)) {
        var result = result
          ? arrayPush(baseDifference(result, array), baseDifference(array, result))
          : array;
      }
    }
    return result ? baseUniq(result) : [];
  }
  
  module.exports = xor;