Javascript对象:在另一个内部添加Object

时间:2018-03-29 12:31:07

标签: javascript arrays typescript

我有两个对象如下:

    obj1= 
{ 
      '201609': 52,
      '201610': 54,
      '201611': 56,
       metric: 'promotionsOut',
       careerLevelGroups:
       [ { '201609': 52,
           '201610': 54,
           '201611': 56,
           careerLevelGroup: 'Associate' 
          } 
        ] 
    }

        obj2= 
{'careerLevels': [{
            '201609': 21,
            '201610': 22,
            '201611': 23,
            'careerID': 10000120
        },
        {
            '201609': 31,
            '201610': 32,
            '201611': 33,
            'careerID': 10000130
        }
    ]
}

现在我需要以结果应该

的方式插入obj2
result = 
{
        "201609": 52,
        "201610": 54,
        "201611": 56,
        "metric": "PromotionsOut",
        "careerLevelGroups": [{
            "201609": 52,
            "201610": 52,
            "201611": 56,
            "careerLevelGroup": "Associate",
            "careerLevels": [{
                    "201609": 21,
                    "201610": 22,
                    "201611": 23,
                    "careerID": 10000120
                },
                {
                    "201609": 31,
                    "201610": 32,
                    "201611": 33,
                    "careerID": 10000130
                }
            ]
        }]

    }

我正在尝试使用push方法来处理它:

let onlyCLs = obj2;
 metric_clg_json.careerLevelGroups[0].careerLevel.push(onlyCLs);

但这不适合我。可能我需要一些循环逻辑来进入" careerLevels"节点,然后在它下面插入obj2。

3 个答案:

答案 0 :(得分:2)

您不应该使用pushpush用于将项插入数组。您想要将数组分配给属性。

您应该将obj2.careerLevels分配给careerLevels

obj1属性

obj1 = {
  '201609': 52,
  '201610': 54,
  '201611': 56,
  metric: 'promotionsOut',
  careerLevelGroups: [{
    '201609': 52,
    '201610': 54,
    '201611': 56,
    careerLevelGroup: 'Associate'
  }]
}

obj2 = {
  'careerLevels': [{
      '201609': 21,
      '201610': 22,
      '201611': 23,
      'careerID': 10000120
    },
    {
      '201609': 31,
      '201610': 32,
      '201611': 33,
      'careerID': 10000130
    }
  ]
}

obj1.careerLevelGroups[0].careerLevels = obj2.careerLevels;

console.log(obj1);

答案 1 :(得分:1)

您只需在obj2的数组careerLevelGroups中添加obj1,如下所示:



var obj1= 
{ 
  '201609': 52,
  '201610': 54,
  '201611': 56,
  'metric': 'promotionsOut',
  'careerLevelGroups':
   [ { '201609': 52,
       '201610': 54,
       '201611': 56,
       'careerLevelGroup': 'Associate' 
      } 
    ] 
}

var obj2 =  {
    'careerLevels': [{
          '201609': 21,
          '201610': 22,
          '201611': 23,
          'careerID': 10000120
      },
      {
          '201609': 31,
          '201610': 32,
          '201611': 33,
          'careerID': 10000130
      }
  ]
}

obj1.careerLevelGroups[0]['careerLevels'] = obj2['careerLevels'];
console.log(obj1);




答案 2 :(得分:1)

obj1.careerLevelGroups[0].careerLevels = obj2.careerLevels



obj1= { 
  '201609': 52,
  '201610': 54,
  '201611': 56,
   metric: 'promotionsOut',
   careerLevelGroups:
   [ { '201609': 52,
       '201610': 54,
       '201611': 56,
       careerLevelGroup: 'Associate' 
      } 
    ] 
}

obj2={'careerLevels': [{
            '201609': 21,
            '201610': 22,
            '201611': 23,
            'careerID': 10000120
        },
        {
            '201609': 31,
            '201610': 32,
            '201611': 33,
            'careerID': 10000130
        }
    ]
}
obj1.careerLevelGroups[0].careerLevels = obj2.careerLevels
console.log(obj1)