JSFiddle - React, Tailwind, and code Playground
by Jonathan Nascimento
React
const arr = [
{
"id": 29,
"name": "group level 1 - Jhon",
"code": "1",
"stacked_code": "1"
},
{
"id": 7,
"name": "group level 2 - James",
"code": "1",
"parent_code": "1",
"stacked_code": "1.1"
},
{
"id": 6,
"name": "group level 3 - Jack",
"code": "1",
"parent_code": "1.1",
"stacked_code": "1.1.1",
"expectation_2025": 0,
"expectation_2024": 3
},
{
"id": 8,
"name": "group level 2 - Jony",
"code": "2",
"parent_code": "1",
"stacked_code": "1.2"
},
{
"id": 7,
"name": "group level 3 - Any",
"code": "2",
"parent_code": "1.2",
"stacked_code": "1.2.2",
"expectation_2027": 4,
"expectation_2026": 15,
"expectation_2025": 2.50,
"expectation_2024": 2
},
{
"id": 39,
"name": "group level 3 - Bob",
"code": "3",
"parent_code": "1.2",
"stacked_code": "1.2.3",
"expectation_2027": 7,
"expectation_2025": 3.50,
"expectation_2024": 5
},
{
"id": 30,
"name": "group level 1 - Joel",
"code": "2",
"stacked_code": "2"
},
{
"id": 39,
"name": "group level 1 - Julie",
"code": "3",
"stacked_code": "3"
},
{
"id": 40,
"name": "group level 2 - Julie",
"code": "1",
"parent_code": "3",
"stacked_code": "3.1"
}
];
const parents = arr.filter((value, index, self) =>
index === self.findIndex((t) => (
t.parent_code === value.parent_code && t.parent_code !== undefined
))
);
//console.log('parents: ', parents);
parents.map(parent => {
//console.log('parents: ', parents);
const groupToSum = arr.filter(f => (parent.parent_code === f.parent_code));
groupToSum.map(itemToSum => {
if (itemToSum.parent_code.includes('.')) { //...