首页 > 解决方案 > 在嵌套的 JavaScript 对象中插入一个条目

问题描述

我在将条目插入嵌套 JavaScript 对象时遇到问题

这是我获取条目的对象

const data = {
  periods: [
    {
      decisions: [
        {
          bank: {
            name: "Team1"
          },
          bSPositionDecisions: [
            {
              totalInputRate: 1.0,
              balanceSheetPosition: {
                name: "asset_bc_lombard_a_onsight",
                category: "LOMBARD_LOANS",
                type: "ASSET"
              }
            },
            {
              totalInputRate: 2.0,
              balanceSheetPosition: {
                name: "asset_bc_lombard_a_lt1m",
                category: "LOMBARD_LOANS",
                type: "ASSET"
              }
            }
          ]
        },
        {
          bank: {
            name: "Team2"
          },

          bSPositionDecisions: [
            {
              totalInputRate: 5.0,
              balanceSheetPosition: {
                name: "asset_bc_lombard_a_onsight",
                category: "LOMBARD_LOANS",
                type: "ASSET"
              }
            },
            {
              totalInputRate: 6.0,
              balanceSheetPosition: {
                name: "asset_bc_lombard_a_lt1m",
                category: "LOMBARD_LOANS",
                type: "ASSET"
              }
            }
          ]
        }
      ]
    }
  ]
};

我一直在努力的是遍历这个对象并获取与“name”、“category”、“type”和银行名称(team1 或 team2)匹配的“totalInputRate”并将其插入另一个对象

我目前的输出看起来像这样

bankname = { banks:
   [ { name: 'Team1',
       LOMBARD_LOANS:
        [ { 
            name: 'asset_bc_lombard_a_onsight',
            category: 'LOMBARD_LOANS' },
          { 

            name: 'asset_bc_lombard_a_lt1m',
            category: 'LOMBARD_LOANS' } ],

       },
     { name: 'Team2',
       LOMBARD_LOANS:
        [ { 
            name: 'asset_bc_lombard_a_onsight',
            category: 'LOMBARD_LOANS' },
          { 
            name: 'asset_bc_lombard_a_lt1m',
            category: 'LOMBARD_LOANS' } ],

        } ],
            }

我要创建的输出应该是这样的

bankname = { banks:
   [ { name: 'Team1',
       LOMBARD_LOANS:
        [ { 
            totalInputRate: 1.0,
            name: 'asset_bc_lombard_a_onsight',
            category: 'LOMBARD_LOANS' },
          { 
            totalInputRate: 2.0,
            name: 'asset_bc_lombard_a_lt1m',
            category: 'LOMBARD_LOANS' } ],

       },
     { name: 'Team2',
       LOMBARD_LOANS:
        [ { 
            totalInputRate: 5.0,
            name: 'asset_bc_lombard_a_onsight',
            category: 'LOMBARD_LOANS' },
          { 
            totalInputRate: 6.0,
            name: 'asset_bc_lombard_a_lt1m',
            category: 'LOMBARD_LOANS' } ],

        } ],
            }

我尝试了几件事,但似乎没有任何建议?

标签: javascriptarraysobject

解决方案


请使用 ES6

const data = {
  periods: [
    {
      decisions: [
        {
          bank: {
            name: "Team1"
          },
          bSPositionDecisions: [
            {
              totalInputRate: 1.0,
              balanceSheetPosition: {
                name: "asset_bc_lombard_a_onsight",
                category: "LOMBARD_LOANS",
                type: "ASSET"
              }
            },
            {
              totalInputRate: 2.0,
              balanceSheetPosition: {
                name: "asset_bc_lombard_a_lt1m",
                category: "LOMBARD_LOANS",
                type: "ASSET"
              }
            }
          ]
        },
        {
          bank: {
            name: "Team2"
          },

          bSPositionDecisions: [
            {
              totalInputRate: 5.0,
              balanceSheetPosition: {
                name: "asset_bc_lombard_a_onsight",
                category: "LOMBARD_LOANS",
                type: "ASSET"
              }
            },
            {
              totalInputRate: 6.0,
              balanceSheetPosition: {
                name: "asset_bc_lombard_a_lt1m",
                category: "LOMBARD_LOANS",
                type: "ASSET"
              }
            }
          ]
        }
      ]
    }
  ]
};

var finalObj = data.periods[0].decisions.map(item => ({
  name: item.bank.name,
  LOMBARD_LOANS: item.bSPositionDecisions.map(loan => ({
    ...loan.balanceSheetPosition,
    totalInputRate: loan.totalInputRate
  }))
}));

console.log(finalObj);


推荐阅读