EAGLE
by Vladymyr Shevchuk
JavaScript
const data = [
{
field1: {
name: 'riba-1'
},
field2: {
name: 'riba-2'
},
field3: {
name: 'riba-4'
},
total: 10
},
{
field1: {
name: 'riba-1'
},
field2: {
name: 'riba-2'
},
field3: {
name: 'riba-5'
},
total: 20
},
{
field1: {
name: 'riba-1'
},
field2: {
name: 'riba-3'
},
field3: {
name: 'riba-6'
},
total: 30
},
{
field1: {
name: 'riba-1'
},
field2: {
name: 'riba-3'
},
field3: {
name: 'riba-7'
},
total: 40
}
];
const fields = ['field1', 'field2', 'field3'];
const fieldsGroups = fields.map(item => R.uniq(data.map(el => el[item], 0)));
console.log('fieldsGroups', fieldsGroups);
const result = fieldsGroups.map((group, index) => {
return group.map(item => {
return {
name: item.name,
total: data.reduce((accum, el) => {
return el[fields[index]].name === item.name ? accum + el.total : accum + 0;
}, 0)
}
})
});
console.log('result', result);