574218c5aef181cbc6bac9907853e20895de5973
[yaffs-website] / node_modules / uncss / node_modules / lodash / size.js
1 var isArrayLike = require('./isArrayLike'),
2     isString = require('./isString'),
3     keys = require('./keys'),
4     stringSize = require('./internal/stringSize');
5
6 /**
7  * Gets the size of `collection` by returning its length for array-like
8  * values or the number of own enumerable properties for objects.
9  *
10  * @static
11  * @memberOf _
12  * @category Collection
13  * @param {Array|Object} collection The collection to inspect.
14  * @returns {number} Returns the collection size.
15  * @example
16  *
17  * _.size([1, 2, 3]);
18  * // => 3
19  *
20  * _.size({ 'a': 1, 'b': 2 });
21  * // => 2
22  *
23  * _.size('pebbles');
24  * // => 7
25  */
26 function size(collection) {
27   if (collection == null) {
28     return 0;
29   }
30   if (isArrayLike(collection)) {
31     var result = collection.length;
32     return (result && isString(collection)) ? stringSize(collection) : result;
33   }
34   return keys(collection).length;
35 }
36
37 module.exports = size;