function zipObject(keys, values) {
      var index = -1,
          length = keys ? keys.length : 0,
          result = {};

      while (++index < length) {
        var key = keys[index];
        if (values) {
          result[key] = values[index];
        } else if (key) {
          result[key[0]] = key[1];
        }
      }
      return result;
    }
Creates an object composed from arrays of `keys` and `values`. Provide
either a single two dimensional array, i.e. `[[key1, value1], [key2, value2]]`
or two arrays, one of `keys` and one of corresponding `values`.

@static
@memberOf _
@alias object
@category Arrays
@param {Array} keys The array of keys.
@param {Array} [values=[]] The array of values.
@returns {Object} Returns an object composed of the given keys and
 corresponding values.
@example

_.zipObject(['moe', 'larry'], [30, 40]);
// => { 'moe': 30, 'larry': 40 }