jsは同じレベルのノードの合計を見つけるためのツリー構造データを実装します

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)
  }
}

データ構造は次のとおりです。

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'
          }
        ]
      }
    ]
  }
]

結果を図に示します
ここに画像の説明を挿入

おすすめ

転載: blog.csdn.net/qq_44415875/article/details/127853883