Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
457 views
in Technique[技术] by (71.8m points)

javascript - 将条目插入嵌套的JavaScript对象(Inserting an entry into a nested JavaScript object)

I am having trouble inserting a entry into a nested JavaScript object(我在将条目插入嵌套的JavaScript对象时遇到问题)

This is the object where I get the entries(这是我获得条目的对象)

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"
              }
            }
          ]
        }
      ]
    }
  ]
};

What I have been struggling with is looping through this object and take the "totalInputRate" that matches with "name", "category" ,"type" and bank name (team1 or team2) and insert it into a another object(我一直在努力的是遍历此对象,并获取与“名称”,“类别”,“类型”和银行名称(team1或team2)匹配的“ totalInputRate”,并将其插入另一个对象)

The output I currently have looks like this(我目前的输出看起来像这样)

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' } ],

        } ],
            }

The output I want to create should look like this(我要创建的输出应如下所示)

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' } ],

        } ],
            }

I tried several things but nothing seems to work any suggestions?(我尝试了几件事,但似乎没有任何建议?)

  ask by Clive Charles translate from so

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Please use ES6(请使用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); 


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...