function zip() {
      var array = arguments.length > 1 ? arguments : arguments[0],
          index = -1,
          length = array ? max(pluck(array, 'length')) : 0,
          result = Array(length < 0 ? 0 : length);

      while (++index < length) {
        result[index] = pluck(array, index);
      }
      return result;
    }
Creates an array of grouped elements, the first of which contains the first
elements of the given arrays, the second of which contains the second
elements of the given arrays, and so on.

@static
@memberOf _
@alias unzip
@category Arrays
@param {...Array} [array] Arrays to process.
@returns {Array} Returns a new array of grouped elements.
@example

_.zip(['fred', 'barney'], [30, 40], [true, false]);
// => [['fred', 30, true], ['barney', 40, false]]