吉安感知网项目-前端
shuishen
2026-01-16 efb3b5e84ed4493f82f30ed3c3dcdff0fd5a8083
applications/task-work-order/src/utils/cesium/kmz.js
@@ -209,6 +209,11 @@
}
/**
 * 递归处理对象,移除 #text 键并返回其值,同时处理数值字符串到数字的转换
 * @param {any} obj - 需要处理的对象或值
 * @returns {any} 处理后的对象或值
 */
export function removeTextKey(obj) {
   if (typeof obj !== 'object' || obj === null) {
      // 如果是数值字符串,转换为数值
@@ -219,18 +224,21 @@
   }
   if (Array.isArray(obj)) {
      // 递归处理数组中的每个元素
      return obj.map(item => removeTextKey(item));
   }
   if (Object.prototype.hasOwnProperty.call(obj, '#text')) {
      // 如果 #text 的值是数值字符串,转换为数值
      // 如果存在 #text 属性,返回其值(如果是数值字符串则转换为数字)
      const textValue = obj['#text'];
      return typeof textValue === 'string' && /^-?\d+(\.\d+)?$/.test(textValue) ? Number(textValue) : textValue;
   }
   // 递归处理对象属性
   const newObj = {};
   for (const key in obj) {
      if (Object.prototype.hasOwnProperty.call(obj, key)) {
         // 如果属性值是空对象,则设为空字符串;否则递归处理
         newObj[key] = Object.keys(obj[key]).length === 0 ? '' : removeTextKey(obj[key]);
      }
   }