basant307/AI_Governance_Project
048
1import baseKeys from './_baseKeys.js';2import getTag from './_getTag.js';3import isArrayLike from './isArrayLike.js';4import isString from './isString.js';5import stringSize from './_stringSize.js';6 7/** `Object#toString` result references. */8var mapTag = '[object Map]',9 setTag = '[object Set]';10 11/**12 * Gets the size of `collection` by returning its length for array-like13 * values or the number of own enumerable string keyed properties for objects.14 *15 * @static16 * @memberOf _17 * @since 0.1.018 * @category Collection19 * @param {Array|Object|string} collection The collection to inspect.20 * @returns {number} Returns the collection size.21 * @example22 *23 * _.size([1, 2, 3]);24 * // => 325 *26 * _.size({ 'a': 1, 'b': 2 });27 * // => 228 *29 * _.size('pebbles');30 * // => 731 */32function size(collection) {33 if (collection == null) {34 return 0;35 }36 if (isArrayLike(collection)) {37 return isString(collection) ? stringSize(collection) : collection.length;38 }39 var tag = getTag(collection);40 if (tag == mapTag || tag == setTag) {41 return collection.size;42 }43 return baseKeys(collection).length;44}45 46export default size;47 