js implements tree structure data to find the sum of nodes at the same level

let sum = arr.map(item => item.value).reduce((v1, v2) => v1 + v2);
console.log(arr.map(item => item.label).join(' + ') + ' = ' + sum)
let queue = [...arr]
while (queue.length) {
    
    
  let item = queue.shift();
  if (item.children && item.children.length) {
    
    
    console.log(item.children.map(item => item.label).join(' + ') + ' = ' + item.children.map(item => item.value).reduce((v1, v2) => v1 + v2));
    queue.push(...item.children)
  }
}

The data structure is as follows:

let arr = [
  {
    
    
    value: 1,
    label: 'A',
    children: [
      {
    
    
        value: 2,
        label: 'B',
        children: [
          {
    
    
            value: 3,
            label: 'C'
          }
        ]
      }
    ]
  },
  {
    
    
    value: 4,
    label: 'AA',
    children: [
      {
    
    
        value: 5,
        label: 'BB',
        children: [
          {
    
    
            value: 6,
            label: 'CC'
          }
        ]
      },
      {
    
    
        value: 7,
        label: 'BB2',
        children: [
          {
    
    
            value: 8,
            label: 'CC2'
          }
        ]
      }
    ]
  }
]

The result is shown in the figure
insert image description here

Guess you like

Origin blog.csdn.net/qq_44415875/article/details/127853883