Arrays Angular2:循环通过最近推送的数组并从另一个数组推送

Arrays Angular2:循环通过最近推送的数组并从另一个数组推送,arrays,angular,foreach,Arrays,Angular,Foreach,我有一个数组对象 MainArray = {"Data": [{"Group": "GroupA"},{"Group": "GroupB"}] } 然后我循环遍历数组并创建一个新的 let _newArray : any[] = []; MainArray.Data.forEach(item => { _newArray.push({ groupname : item.Group, column

我有一个数组对象

MainArray = {"Data":
             [{"Group": "GroupA"},{"Group": "GroupB"}]
}
然后我循环遍历数组并创建一个新的

let _newArray : any[] = [];
MainArray.Data.forEach(item => {
      _newArray.push({
              groupname : item.Group,
              columns: ["column1","column2","column3"]
            });
        //loop through _newArray.columns
        });
然后我需要在主数组循环中循环新数组的列

并从另一个阵列中推送一个阵列

SecondArray = [{group: "GroupA", value: "firstfield", count: 14 },{group: "GroupA", field: "secondfield", count:23 },{group: "GroupB", field: "randomfield", count:1 }]
所以输出应该是

_newArray = [{
         groupname: "GroupA",
         columns: ["column1","column2","column3"]
         col1: [{"firstfield":14, "secondfield": 23 }]
         col2: "",
         col3: ""
         },{GroupB...}]
我尝试的是:

 Object.keys( _newArray[0].columns).forEach( function(value, key) {
                console.log(this._SecondArray[item.Group])
                // push  'col + index: [Second Array]'
                });

在第二个数组中,第一个对象具有“value”键。我假设它是“场”


你的问题是什么?我如何在一个推送数组中循环并再次推送,例如“col+index:[第二个数组]”谢谢你的快速响应,但是col1,col2,col3是动态的,我正在考虑通过循环推送列来获得这些键。因此,如果有“column4”,则应该有col4您希望首先从MainArray创建新数组,然后在第二个数组可用后修改newArray。我说得对吗@Yzakyes这是正确的,谢谢,但是应该循环通过列,使col1-col3或任何长度的列成为一个查询,匹配的secondarray内容是否应该始终属于col1@Yzak这是正确的,我将有一个不同的内容为2和3,但这是为未来参考
let MainArray = {
  "Data":
  [{ "Group": "GroupA" }, { "Group": "GroupB" }]
}

// First push
let _newArray = [];
MainArray.Data.forEach(item => {
  _newArray.push({
    'groupname': item.Group,
    'columns': ["column1", "column2", "column3"]
  })
})


let SecondArray = [{ group: "GroupA", field: "firstfield", count: 14 }, { group: "GroupA", field: "secondfield", count: 23 }, { group: "GroupB", field: "randomfield", count: 1 }];

// Second push
_newArray.forEach(item => {
  console.log(item)
  let i = 1;
  item.columns.forEach(cols => {
    console.log(cols)
    if (i == 1) {
      item["col" + i] = {}
      SecondArray.forEach(subItem => {
        console.log(subItem)
        if (subItem.group == item.groupname) {
          item["col" + i][subItem.field] = subItem.count
        }
      })
      i++
    } else {
      item["col" + i++] = ""
    }
  })
})



console.log(_newArray);