Recursión de profundidad de matriz, niños de capa infinita, ¿cómo cambiar el nombre y otros atributos?

Supongamos que tenemos una matriz como esta:

let list = [
      {
        name:'张三',
        children:[
          {
            name:'李四',
            children:[
              {
                name:'王五',
              }
            ]
          }
        ]
      },
      {
        name:'老刘',
        children:[
          {
            name:'啧啧啧',
            children:[
              {
                name:'消息',
              }
            ]
          }
        ]
      },
      {
        name:'老往',
        children:[
          {
            name:'密码',
            children:[
              {
                name:'嗯嗯',
              }
            ]
          }
        ]
      }
    ]

Ahora el requisito es empalmar una cadena de caracteres '%' después de cada nombre. La premisa es que los niños tienen infinitas capas y no sabes cuántas capas hay.

Necesitamos definir una función: como deep()

 deep(list){
    for (let i = 0; i < list.length; i++) {
      const element = list[i];
      element.name = element.name + '%'
      if(element.children && element.children.length > 0) {
        this.deep(element.children)
      }
    }
  },

Esta función necesita ser llamada antes

this.deep(list)

resultado:

 El escenario de aplicación de este problema es echarts. Necesitamos hacer un gráfico de rayos solares, porque el formato del gráfico de rayos solares es una capa infinita de niños, y se debe agregar un porcentaje al nombre. Para un recorrido ordinario, necesita saber el nivel.

Supongo que te gusta

Origin blog.csdn.net/ZHANG157111/article/details/130356468
Recomendado
Clasificación