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);