zsy-recycling-supervision-a.../src/common/utils/objects.ts

55 lines
1.1 KiB
TypeScript

import { TypeTag } from '@/common/utils/index.ts'
import { isString } from '@/common/utils/types.ts'
/**
* 检查是否为普通对象
* @param obj 待检查对象
*/
export function isSimpleObject(obj: any) {
if (Object.prototype.toString.call(obj) !== TypeTag.OBJECT) {
return false
}
let firstProto = Object.getPrototypeOf(obj)
if (firstProto == null) {
return true
}
let proto = firstProto
let pt = null
while ((pt = Object.getPrototypeOf(proto)) != null) {
proto = pt
}
return firstProto === proto
}
/**
* 检查是否为类数组
* @param obj 待检查对象
*/
export function isArrayLike(obj: any) {
return obj != null &&
typeof obj !== 'function' &&
(typeof obj.length === 'number' &&
obj.length > -1 &&
obj.length % 1 === 0 &&
obj.length <= Number.MAX_SAFE_INTEGER)
}
/**
* 检查是否为纯数字字符串
* @param obj 待检查对象
*/
export function isNumStr(obj: any) {
return isString(obj) && !isNaN(Number(obj))
}
export default {
isSimpleObject,
isArrayLike,
isNumStr,
}