You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript处理RPA返回对象的键格式问题以获取指定值

问题解决方法

核心问题分析

你原来的代码存在两个关键错误:

  1. JSON.stringify加replace的方式仅能去除键的前后空格,无法处理键中间的多空格和特殊字符(如¾)
  2. for...in循环里的dat是字符串类型的键名,并非对象,因此dat.NombreAtencion必然返回undefined

单对象处理方案

编写通用清理函数,遍历原对象所有键,清理后构建新对象:

function cleanObjectKeys(obj) {
  const cleanedObj = {};
  for (const key in obj) {
    // 清理规则:去除前后空格、合并中间多空格、替换¾为o
    const cleanedKey = key.trim().replace(/\s+/g, '').replace('¾', 'o');
    cleanedObj[cleanedKey] = obj[key];
  }
  return cleanedObj;
}

// 测试示例
let data = {
      Fecha: '2022-12-14T00:00:00',
      Hora: '1899-12-31T16:14:00',
      'Aten.': 73,
      ' Nro  Ing ': 0,
      Cerrada: 'S',
      '    ': '    ',
      ' Nombre  Atenci¾n ': 'AMBULATORIA',
      'EstadoHC.Electronica': '   -   ',
      Profesional: ' GARCIA  CHAVERRA  MADELEINE ',
      Especialidad: ' MEDICINA  GENERAL ',
      Diagnostico: ' ENFERMEDAD  CARDIACA,  NO  ESPECIFICADA ',
      'Num.Cta': 0
    };

const cleanedData = cleanObjectKeys(data);
console.log(cleanedData.NombreAtencion); // 输出 AMBULATORIA

批量处理对象数组方案

若需处理一组对象,直接遍历数组调用清理函数即可:

// 示例对象数组
const dataArray = [
  { /* 第一个待处理对象 */ },
  { /* 第二个待处理对象 */ },
  // ...更多对象
];

// 批量处理
const cleanedArray = dataArray.map(obj => cleanObjectKeys(obj));

// 调用示例:获取第一个处理后对象的目标值
console.log(cleanedArray[0].NombreAtencion);

可选格式优化

如果需要保留键的部分格式(如仅去除前后空格,中间多空格保留单个),可修改清理规则:

// 仅去前后空格、替换特殊字符,中间多空格转为单个
const cleanedKey = key.trim().replace(/\s+/g, ' ').replace('¾', 'o');

内容的提问来源于stack exchange,提问作者Luiz Villalba

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 14:01:30