# 如何判断类数组
function isArrayLike(value) {
// isLength函数:length值合法
return value != null && typeof value != 'function' && isLength(value.length);
}
满足以下三个条件,即可认为类数组。
- 不为
null
。 - 不为
function
,因为函数有length属性,表示形参个数。 - 拥有
length
属性,且值合法。
# 如何判断对象类数组
function isArrayLikeObject(value) {
return isObjectLike(value) && isArrayLike(value);
}
上面的函数会将字符串也识别为类数组,因此需要验证value
是否为对象。