| var baseDifference = require('./_baseDifference'), |
| baseFlatten = require('./_baseFlatten'), |
| baseUniq = require('./_baseUniq'); |
| * The base implementation of methods like `_.xor`, without support for |
| * iteratee shorthands, that accepts an array of arrays to inspect. |
| * @param {Array} arrays The arrays to inspect. |
| * @param {Function} [iteratee] The iteratee invoked per element. |
| * @param {Function} [comparator] The comparator invoked per element. |
| * @returns {Array} Returns the new array of values. |
| function baseXor(arrays, iteratee, comparator) { |
| var length = arrays.length; |
| return length ? baseUniq(arrays[0]) : []; |
| while (++index < length) { |
| var array = arrays[index], |
| while (++othIndex < length) { |
| result[index] = baseDifference(result[index] || array, arrays[othIndex], iteratee, comparator); |
| return baseUniq(baseFlatten(result, 1), iteratee, comparator); |
| module.exports = baseXor; |