00001 var baseKeys = require('./_baseKeys'), 00002 getTag = require('./_getTag'), 00003 isArrayLike = require('./isArrayLike'), 00004 isString = require('./isString'), 00005 stringSize = require('./_stringSize'); 00006 00008 var mapTag = '[object Map]', 00009 setTag = '[object Set]'; 00010 00032 function size(collection) { 00033 if (collection == null) { 00034 return 0; 00035 } 00036 if (isArrayLike(collection)) { 00037 return isString(collection) ? stringSize(collection) : collection.length; 00038 } 00039 var tag = getTag(collection); 00040 if (tag == mapTag || tag == setTag) { 00041 return collection.size; 00042 } 00043 return baseKeys(collection).length; 00044 } 00045 00046 module.exports = size;