Move _.values to Objects category.

Former-commit-id: e85229b53a7697c11f76eae02aef8a4fce3aec3a
This commit is contained in:
John-David Dalton
2012-06-06 23:45:30 -04:00
parent 5e8c373bf4
commit ca1c732f31

View File

@@ -333,20 +333,6 @@
} }
}; };
/** Reusable iterator options for `map` and `values` */
var mapIteratorOptions = {
'init': '',
'exit': 'if (!collection) return []',
'beforeLoop': {
'array': 'result = Array(length)',
'object': 'result = []'
},
'inLoop': {
'array': 'result[index] = callback(collection[index], index, collection)',
'object': 'result.push(callback(collection[index], index, collection))'
}
};
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/** /**
@@ -516,7 +502,7 @@
/** /**
* A shim implementation of `Object.keys` that produces an array of the given * A shim implementation of `Object.keys` that produces an array of the given
* object's enumerable own property names. * object's own enumerable property names.
* *
* @private * @private
* @param {Object} object The object to inspect. * @param {Object} object The object to inspect.
@@ -708,7 +694,18 @@
* _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; }); * _.map({ 'one': 1, 'two': 2, 'three': 3 }, function(num) { return num * 3; });
* // => [3, 6, 9] (order is not guaranteed) * // => [3, 6, 9] (order is not guaranteed)
*/ */
var map = createIterator(baseIteratorOptions, mapIteratorOptions); var map = createIterator(baseIteratorOptions, {
'init': '',
'exit': 'if (!collection) return []',
'beforeLoop': {
'array': 'result = Array(length)',
'object': 'result = []'
},
'inLoop': {
'array': 'result[index] = callback(collection[index], index, collection)',
'object': 'result.push(callback(collection[index], index, collection))'
}
});
/** /**
* Boils down a `collection` to a single value. The initial state of the * Boils down a `collection` to a single value. The initial state of the
@@ -876,28 +873,6 @@
return values(collection); return values(collection);
} }
/**
* Produces an array of enumerable own property values of the `collection`.
*
* @static
* @memberOf _
* @alias methods
* @category Collections
* @param {Array|Object} collection The collection to inspect.
* @returns {Array} Returns a new array of property values.
* @example
*
* _.values({ 'one': 1, 'two': 2, 'three': 3 });
* // => [1, 2, 3]
*/
var values = createIterator(mapIteratorOptions, {
'args': 'collection',
'inLoop': {
'array': 'result[index] = collection[index]',
'object': 'result.push(collection[index])'
}
});
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/** /**
@@ -2236,9 +2211,9 @@
var extend = createIterator(extendIteratorOptions); var extend = createIterator(extendIteratorOptions);
/** /**
* Iterates over an `object`'s enumerable own and inherited properties, * Iterates over `object`'s own and inherited enumerable properties, executing
* executing the `callback` for each property. The `callback` is bound to * the `callback` for each property. The `callback` is bound to `thisArg` and
* `thisArg` and invoked with 3 arguments; (value, key, object). * invoked with 3 arguments; (value, key, object).
* *
* @static * @static
* @memberOf _ * @memberOf _
@@ -2267,9 +2242,9 @@
}); });
/** /**
* Iterates over an `object`'s enumerable own properties, executing the * Iterates over `object`'s own enumerable properties, executing the `callback`
* `callback` for each property. The `callback` is bound to `thisArg` and * for each property. The `callback` is bound to `thisArg` and invoked with 3
* invoked with 3 arguments; (value, key, object). * arguments; (value, key, object).
* *
* @static * @static
* @memberOf _ * @memberOf _
@@ -2288,8 +2263,8 @@
var forOwn = createIterator(baseIteratorOptions, forEachIteratorOptions, forOwnIteratorOptions); var forOwn = createIterator(baseIteratorOptions, forEachIteratorOptions, forOwnIteratorOptions);
/** /**
* Produces a sorted array of the properties, own and inherited, of `object` * Produces a sorted array of the enumerable properties, own and inherited,
* that have function values. * of `object` that have function values.
* *
* @static * @static
* @memberOf _ * @memberOf _
@@ -2428,7 +2403,7 @@
/** /**
* Checks if a `value` is empty. Arrays or strings with a length of `0` and * Checks if a `value` is empty. Arrays or strings with a length of `0` and
* objects with no enumerable own properties are considered "empty". * objects with no own enumerable properties are considered "empty".
* *
* @static * @static
* @memberOf _ * @memberOf _
@@ -2792,7 +2767,7 @@
} }
/** /**
* Produces an array of the `object`'s enumerable own property names. * Produces an array of object`'s own enumerable property names.
* *
* @static * @static
* @memberOf _ * @memberOf _
@@ -2844,16 +2819,15 @@
} }
/** /**
* Gets the size of a `value` by returning `value.length` if `value` is a * Gets the size of `value` by returning `value.length` if `value` is a string
* string or array, or the number of enumerable own properties if `value` is * or array, or the number of own enumerable properties if `value` is an object.
* an object.
* *
* @static * @static
* @memberOf _ * @memberOf _
* @category Objects * @category Objects
* @param {Array|Object|String} value The value to inspect. * @param {Array|Object|String} value The value to inspect.
* @returns {Number} Returns `value.length` if `value` is a string or array, * @returns {Number} Returns `value.length` if `value` is a string or array,
* or the number of enumerable own properties if `value` is an object. * or the number of own enumerable properties if `value` is an object.
* @example * @example
* *
* _.size([1, 2]); * _.size([1, 2]);
@@ -2898,6 +2872,25 @@
return value; return value;
} }
/**
* Produces an array of `object`'s own enumerable property values.
*
* @static
* @memberOf _
* @category Objects
* @param {Object} object The object to inspect.
* @returns {Array} Returns a new array of property values.
* @example
*
* _.values({ 'one': 1, 'two': 2, 'three': 3 });
* // => [1, 2, 3]
*/
var values = createIterator({
'args': 'object',
'init': '[]',
'inLoop': 'result.push(object[index])'
});
/*--------------------------------------------------------------------------*/ /*--------------------------------------------------------------------------*/
/** /**