31 lines
761 B
JavaScript
31 lines
761 B
JavaScript
|
var getLength = require('../internal/getLength'),
|
||
|
isLength = require('../internal/isLength'),
|
||
|
keys = require('../object/keys');
|
||
|
|
||
|
/**
|
||
|
* Gets the size of `collection` by returning its length for array-like
|
||
|
* values or the number of own enumerable properties for objects.
|
||
|
*
|
||
|
* @static
|
||
|
* @memberOf _
|
||
|
* @category Collection
|
||
|
* @param {Array|Object|string} collection The collection to inspect.
|
||
|
* @returns {number} Returns the size of `collection`.
|
||
|
* @example
|
||
|
*
|
||
|
* _.size([1, 2, 3]);
|
||
|
* // => 3
|
||
|
*
|
||
|
* _.size({ 'a': 1, 'b': 2 });
|
||
|
* // => 2
|
||
|
*
|
||
|
* _.size('pebbles');
|
||
|
* // => 7
|
||
|
*/
|
||
|
function size(collection) {
|
||
|
var length = collection ? getLength(collection) : 0;
|
||
|
return isLength(length) ? length : keys(collection).length;
|
||
|
}
|
||
|
|
||
|
module.exports = size;
|