function takeWhile(array, predicate, thisArg) {
      return (array && array.length)
        ? baseWhile(array, getCallback(predicate, thisArg, 3))
        : [];
    }
Creates an array of unique values, in order, from all of the provided arrays
using [`SameValueZero`](http://ecma-international.org/ecma-262/6.0/#sec-samevaluezero)
for equality comparisons.

@static
@memberOf _
@category Array
@param {...Array} [arrays] The arrays to inspect.
@returns {Array} Returns the new array of combined values.
@example

_.union([1, 2], [4, 2], [2, 1]);
// => [1, 2, 4]