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

如何使用JavaScript将指定对象转换为特定格式的数组?

JavaScript 对象转指定格式数组实现方案

需求说明

给定如下原始JavaScript对象:

{
  "id":1,
  "vol":"0.0",
  "vol_per":"0.0%",
  "ABC":"8.30",
  "OFG":"13.85",
  "SPG":"70.80"
}

需要将其转换为指定格式的数组(过滤掉id字段,每个元素包含field和header属性):

const data = [
  {field:'vol',header:'VOL'},
  {field:'vol_per',header:'VOL%'},
  {field:'ABC',header:'ABC'},
  {field:'OFG',header:'OFG'},
  {field:'SPG',header:'SPG'}
]

Header 生成规则

从示例可总结出以下规则,同时支持扩展新增属性:

  • vol → 转为全大写:VOL
  • vol_per → 替换下划线为%并大写前缀:VOL%
  • 全大写字母组成的字段(如ABC、OFG)→ 直接保留原字段作为header
  • 可按需扩展其他通用规则(如下划线分割字段转为大写空格分隔)

实现代码

// 原始对象
const originalObj = {
  "id":1,
  "vol":"0.0",
  "vol_per":"0.0%",
  "ABC":"8.30",
  "OFG":"13.85",
  "SPG":"70.80"
};

// 生成header的工具函数,可根据新增属性扩展规则
function getHeader(field) {
  switch(field) {
    case 'vol':
      return 'VOL';
    case 'vol_per':
      return 'VOL%';
    default:
      // 匹配全大写字段,直接返回
      if (/^[A-Z]+$/.test(field)) {
        return field;
      }
      // 通用 fallback:下划线分割转大写空格分隔(应对新增的其他格式字段)
      return field.split('_').map(part => part.toUpperCase()).join(' ');
  }
}

// 核心转换函数
function convertToTargetArray(obj) {
  return Object.entries(obj)
    // 过滤掉不需要的id字段
    .filter(([key]) => key !== 'id')
    // 映射为目标格式的对象
    .map(([field]) => ({
      field,
      header: getHeader(field)
    }));
}

// 执行转换并输出结果
const data = convertToTargetArray(originalObj);
console.log(data);

代码说明

  1. 遍历与过滤:使用Object.entries()将对象转为键值对数组,再通过filter()剔除不需要的id字段
  2. Header生成:通过getHeader()函数根据预设规则处理每个字段,支持扩展新增属性的规则
  3. 映射组装:使用map()将每个字段转换为目标格式的对象,最终组合成结果数组

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 22:55:16