1/**
2 * This base implementation of `_.zipObject` which assigns values using `assignFunc`.
3 *
4 * @private
5 * @param {Array} props The property identifiers.
6 * @param {Array} values The property values.
7 * @param {Function} assignFunc The function to assign values.
8 * @returns {Object} Returns the new object.
9 */
10function baseZipObject(props, values, assignFunc) {
11  var index = -1,
12      length = props.length,
13      valsLength = values.length,
14      result = {};
15
16  while (++index < length) {
17    var value = index < valsLength ? values[index] : undefined;
18    assignFunc(result, props[index], value);
19  }
20  return result;
21}
22
23module.exports = baseZipObject;
24