| var isArray = require('../lang/isArray'); |
| |
| /** |
| * The inverse of `_.pairs`; this method returns an object composed from arrays |
| * of property names and values. Provide either a single two dimensional array, |
| * e.g. `[[key1, value1], [key2, value2]]` or two arrays, one of property names |
| * and one of corresponding values. |
| * |
| * @static |
| * @memberOf _ |
| * @alias object |
| * @category Array |
| * @param {Array} props The property names. |
| * @param {Array} [values=[]] The property values. |
| * @returns {Object} Returns the new object. |
| * @example |
| * |
| * _.zipObject([['fred', 30], ['barney', 40]]); |
| * // => { 'fred': 30, 'barney': 40 } |
| * |
| * _.zipObject(['fred', 'barney'], [30, 40]); |
| * // => { 'fred': 30, 'barney': 40 } |
| */ |
| function zipObject(props, values) { |
| var index = -1, |
| length = props ? props.length : 0, |
| result = {}; |
| |
| if (length && !values && !isArray(props[0])) { |
| values = []; |
| } |
| while (++index < length) { |
| var key = props[index]; |
| if (values) { |
| result[key] = values[index]; |
| } else if (key) { |
| result[key[0]] = key[1]; |
| } |
| } |
| return result; |
| } |
| |
| module.exports = zipObject; |