Quiero obtener la longitud de la matriz multidimensional en JS: esta es mi matriz:
const treeData = [ { title: '0-0', key: '0-0', children: [ { title: '0-0-0', key: '0-0-0', children: [ { title: '0-0-0-0', key: '0-0-0-0', }, { title: '0-0-0-1', key: '0-0-0-1', }, { title: '0-0-0-2', key: '0-0-0-2', }, ], }, { title: '0-0-1', key: '0-0-1', children: [ { title: '0-0-1-0', key: '0-0-1-0', }, { title: '0-0-1-1', key: '0-0-1-1', }, { title: '0-0-1-2', key: '0-0-1-2', }, ], }, { title: '0-0-2', key: '0-0-2', }, ], }, { title: '0-1', key: '0-1', children: [ { title: '0-1-0-0', key: '0-1-0-0', }, { title: '0-1-0-1', key: '0-1-0-1', }, { title: '0-1-0-2', key: '0-1-0-2', }, ], }, { title: '0-2', key: '0-2', }, ];El resultado debe ser: 15 La idea es mapear todos los elementos y si tienen un elemento secundario de matriz, obtenga la longitud. Estoy seguro de que optaré por una función recursiva, pero parece ser complicado. Lo hice. No encontré ninguna solución en Internet, ¿tiene alguna idea, por favor? Gracias
function getLengthOfTreeData(treeData) { let size = { size: 0 }; // object because it needs to be passed by reference return getSize(size, treeData).size; } function getSize(size, treeData) { // recursive function if (treeData.length === 0) { return size; } size.size += treeData.length; for (let i = 0; i < treeData.length; i++) { const data = treeData[i]; if (data.children) getSize(size, data.children); } return size; } console.log(getLengthOfTreeData(treeData));