export const checkEmpty=(value)=>{ // 处理 null 和 undefined if (value === null || value === undefined) return true; // 处理字符串 if (typeof value === 'string') { return value.trim() === ''; } // 处理数组 if (Array.isArray(value)) { return value.length === 0; } // 处理对象 if (typeof value === 'object') { return Object.keys(value).length === 0; } // 处理数字 - 0 不为空 if (typeof value === 'number') { return false; } // 处理布尔值 - false 不为空 if (typeof value === 'boolean') { return false; } // 其他类型默认为非空 return false; }; // 递归函数转换字符串为数字(只转换看起来是数字的字符串) export const convertNumericStrings = (obj)=> { Object.keys(obj).forEach(key => { const value = obj[key]; // console.log(`Processing key: ${key}`,'=',value); // 调试输出 // 如果是对象或数组,递归 if (typeof value === 'object' && value !== null) { convertNumericStrings(value); } else { if(isNumberOrDecimal(value)){ // 如果是数字或小数,直接转换 obj[key] = parseFloat(value); } } // if (typeof value === 'string') { // // 尝试转换为数字 // const num = parseFloat(value); // // 检查转换是否有效,并且原字符串去掉空格后等于转换后的数字字符串(避免将非数字字符串转换为NaN) // if (!isNaN(num) && value.trim() === num.toString()) { // obj[key] = num; // } // // 如果还有其他格式的字符串数字,可以调整上面的条件 // } }); return obj; } function isNumberOrDecimal(str) { const regexDecimal = /^\d+(\.\d+)?$/; return regexDecimal.test(str); }