// 申明 数组 declare type EmptyArrayType = T[]; // 申明 对象 declare type EmptyObjectType = { [key: string]: T; }; /** * 对象深克隆 * @param obj 源对象 * @returns 克隆后的对象 */ export function deepClone(obj: EmptyObjectType) { let newObj: EmptyObjectType; try { newObj = obj.push ? [] : {}; } catch (error) { newObj = {}; } for (let attr in obj) { if (obj[attr] && typeof obj[attr] === 'object') { newObj[attr] = deepClone(obj[attr]); } else { newObj[attr] = obj[attr]; } } return newObj; } /** * 判断是否是移动端 */ export function isMobile() { if ( navigator.userAgent.match( /('phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone')/i ) ) { return true; } else { return false; } } /** * 判断数组对象中所有属性是否为空,为空则删除当前行对象 * @param list 数组对象 * @returns 删除空值后的数组对象 */ export function handleEmpty(list: EmptyArrayType) { const arr = []; for (const i in list) { const d = []; for (const j in list[i]) { d.push(list[i][j]); } const leng = d.filter((item) => item === '').length; if (leng !== d.length) { arr.push(list[i]); } } return arr; }