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.