# 获取可枚举长度

const mapTag = '[object Map]';
const setTag = '[object Set]';

function size(collection) {
  // 处理null或undefined
  if (collection == null) {
    return 0;
  }
  // 处理类数组
  if (isArrayLike(collection)) {
    return isString(collection) ? stringSize(collection) : collection.length;
  }
  const tag = getTag(collection);
  // 处理Map与Set
  if (tag == mapTag || tag == setTag) {
    return collection.size;
  }
  // 处理普通对象
  return Object.keys(collection).length;
}
最近更新时间: 2020/9/6 11:30:38