@ssports_fe/ssutils
Version:
49 lines (45 loc) • 946 B
JavaScript
/**
*
* @desc 判断是否为合法的array-like长度
* @param {Number} value 需要检查的数字
* @return {Boolean} 返回是否为合法的整数
*
* isLength(3)
* // => true
*
* isLength(Number.MIN_VALUE)
* // => false
*
* isLength(Infinity)
* // => false
*
* isLength('3')
* // => false
*/
function isLength(value) {
const MAX_SAFE_INTEGER = 9007199254740991;
return typeof value === 'number' &&
value > -1 && value % 1 === 0 && value <= MAX_SAFE_INTEGER;
}
/**
*
* @desc 判断是否为类数组
* @param {Array} value 类数组
* @return {Boolean} 返回是否为合法的类数组
*
* isArrayLike([1, 2, 3])
* // => true
*
* isArrayLike(document.body.children)
* // => true
*
* isArrayLike('abc')
* // => true
*
* isArrayLike(Function)
* // => false
*/
function isArrayLike(value) {
return value !== null && typeof value !== 'function' && isLength(value.length);
}
module.exports = isArrayLike;