Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Download
80742 views
1
var baseDifference = require('../internal/baseDifference'),
2
baseUniq = require('../internal/baseUniq'),
3
isArrayLike = require('../internal/isArrayLike');
4
5
/**
6
* Creates an array of unique values that is the [symmetric difference](https://en.wikipedia.org/wiki/Symmetric_difference)
7
* of the provided arrays.
8
*
9
* @static
10
* @memberOf _
11
* @category Array
12
* @param {...Array} [arrays] The arrays to inspect.
13
* @returns {Array} Returns the new array of values.
14
* @example
15
*
16
* _.xor([1, 2], [4, 2]);
17
* // => [1, 4]
18
*/
19
function xor() {
20
var index = -1,
21
length = arguments.length;
22
23
while (++index < length) {
24
var array = arguments[index];
25
if (isArrayLike(array)) {
26
var result = result
27
? baseDifference(result, array).concat(baseDifference(array, result))
28
: array;
29
}
30
}
31
return result ? baseUniq(result) : [];
32
}
33
34
module.exports = xor;
35
36