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('.')) { //...