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

将带数字键的JavaScript对象转换为含trade_id的对象数组

解决方案

可以通过遍历原对象的键值对,逐个转换字段格式来实现需求,具体步骤和代码如下:

转换逻辑说明

  • trade_id:将原对象的数字键转为数字类型字段
  • trade_date:把ISO格式日期(如2022-12-09T00:00:00)转换为MM/D/YYYY格式
  • settlement_date:原字段为null时替换为'1/1/0001'
  • quantity/price:将数字类型转为字符串类型
  • portfolio_name:去除首尾空格,同时清理末尾的标点符号

代码实现

// 原数据
const originalTrades = {
  1: {
    trade_date: "2022-12-09T00:00:00",
    settlement_date: null,
    trade_type: "Buy",
    quantity: 25,
    security_id: "AAPL",
    price: 125,
    portfolio_name: " Goldman Sachs.",
    counter_party: null,
    trader: "trader1"
  },
  2: {
    trade_date: "2022-12-09T00:00:00",
    settlement_date: null,
    trade_type: "Buy",
    quantity: 25,
    security_id: "AMZN",
    price: 105,
    portfolio_name: "JPM",
    counter_party: null,
    trader: "trader2"
  }
};

// 转换函数
const transformTrades = (trades) => {
  return Object.entries(trades).map(([tradeId, trade]) => {
    // 处理trade_date格式
    const date = new Date(trade.trade_date);
    const formattedTradeDate = `${date.getMonth() + 1}/${date.getDate()}/${date.getFullYear()}`;
    
    // 处理portfolio_name
    const cleanedPortfolioName = trade.portfolio_name.trim().replace(/[.,!?]$/, '');
    
    return {
      trade_id: Number(tradeId),
      trade_date: formattedTradeDate,
      settlement_date: trade.settlement_date ?? '1/1/0001',
      trade_type: trade.trade_type,
      quantity: String(trade.quantity),
      security_id: trade.security_id,
      price: String(trade.price),
      portfolio_name: cleanedPortfolioName,
      counter_party: trade.counter_party,
      trader: trade.trader
    };
  });
};

// 执行转换
const transformedTrades = transformTrades(originalTrades);
console.log(transformedTrades);

输出结果

[
  {
    trade_id: 1,
    trade_date: '12/9/2022',
    settlement_date: '1/1/0001',
    trade_type: 'Buy',
    quantity: '25',
    security_id: 'AAPL',
    price: '125',
    portfolio_name: 'Goldman Sachs',
    counter_party: null,
    trader: 'trader1'
  },
  {
    trade_id: 2,
    trade_date: '12/9/2022',
    settlement_date: '1/1/0001',
    trade_type: 'Buy',
    quantity: '25',
    security_id: 'AMZN',
    price: '105',
    portfolio_name: 'JPM',
    counter_party: null,
    trader: 'trader2'
  }
]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 01:50:29