diff options
Diffstat (limited to 'deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js')
-rw-r--r-- | deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js b/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js new file mode 100644 index 0000000000..dec7a211b7 --- /dev/null +++ b/deps/npm/node_modules/cli-table2/node_modules/lodash/array/zipObject.js @@ -0,0 +1,43 @@ +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; |