# 获取可枚举长度
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;
}
← 深层取值 防抖Debounce →