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