Я застрял в проблеме, где я хочу создать объекты по своему выбору из записей из других объектов.
Вот что я хочу сказать
Я создал такой объект-
{FY13: Array(12), FY14: Array(12), FY15: Array(12)}
and each Array(12) contains 12 months value
0: {DECEMBER: 305613430.7701738}
1: {JANUARY: 275987392.27062917}
2: {FEBRUARY: 233681429.7241771}
3: {MARCH: 276556599.762852}
4: {APRIL: 291581891.6168785}
5: {MAY: 243244065.40839994}
6: {JUNE: 251725888.83152565}
7: {JULY: 263685518.35567823}
8: {AUGUST: 255451062.8538219}
9: {SEPTEMBER: 401511405.31539994}
10: {OCTOBER: 278446608.78520465}
11: {NOVEMBER: 346733805.9584188}
Я хочу сделать еще один объект из каждой записи из этого объекта и создать новый, подобный этому -
{
FY13{
'Q1-FY-13': 305613430.7701738+275987392.27062917+233681429.7241771,
'Q2-FY-13': 276556599.762852+ 291581891.6168785+243244065.40839994,
'Q3-FY-13': val of other months....',
'Q4-FY-13': ''
},
FY14{
'Q1-FY-13': ...,
'Q2-FY-13': ...,
'Q3-FY-13': ...,
'Q4-FY-13': ....,
},
FY15{
'Q1-FY-13': ...,
'Q2-FY-13': ...,
'Q3-FY-13': ...,
'Q4-FY-13': ....,
}
}
Это то, что я сделал до сих пор - я сгруппировалобъектами в соответствии с годом и хранят их в массиве, и он полностью жестко закодирован -
let objectArray = [...this.totalObject];
let groupByYear = objectArray.reduce(function(acc, obj) {
var key = obj["Year"].trim();
acc[key] = acc[key] || [];
acc[key].push({
[obj.Month.trim().toUpperCase()]: obj.value
});
return acc;
}, {});
console.log("Group By Year", groupByYear);
let dataArray = [];
for (let key in groupByYear) {
let val = groupByYear[key];
let obj1 = {
["Q1_" + key]: [val[0].DECEMBER + val[1].JANUARY + val[2].FEBRUARY]
};
dataArray.push(obj1)
let obj2 = {
["Q2_" + key]: [val[3].MARCH + val[4].APRIL + val[5].MAY]
};
dataArray.push(obj2)
let obj3 = {
["Q3_" + key]: [val[6].JUNE + val[7].JULY + val[8].AUGUST]
};
dataArray.push(obj3)
let obj4 = {
["Q4_" + key]: [val[9].SEPTEMBER + val[10].OCTOBER + val[11].NOVEMBER]
};
dataArray.push(obj4)
}
console.log('Data Array',dataArray);
Это дает мне тот же результат, но я хочу, чтобы это было гибко - любой альтернативный способ?
0: {Q1_FY13: Array(1)}
1: {Q2_FY13: Array(1)}
2: {Q3_FY13: Array(1)}
3: {Q4_FY13: Array(1)}
4: {Q1_FY14: Array(1)}
5: {Q2_FY14: Array(1)}
6: {Q3_FY14: Array(1)}
7: {Q4_FY14: Array(1)}
8: {Q1_FY15: Array(1)}
9: {Q2_FY15: Array(1)}
10: {Q3_FY15: Array(1)}
11: {Q4_FY15: Array(1)}
Спасибо за ваше время здесь. Я новичок в использовании функции высшего порядка, поэтому, если есть какая-то реальная чертовка, пожалуйста, укажите.