tengo un objeto como el de abajo,
Ejemplo 1
input = { item_type: { id: '1', name: 'name1', }, children: [ { type_1: { id: '12', }, type: 'item1-type', }, { children: [ { id: '1', type: 'item2', }, { id: '2', type:'item2', }, { id:'3', type: 'item2', }, ] type: 'item2-type', }, { children: [ { id: '4', type: 'item2', }, { id: '5', type:'item2', }, { id:'6', type: 'item2', }, ] type: 'item2-type', }, ] }ahora quiero encontrar el recuento del tipo "elemento2" dentro de la matriz de niños dentro de la matriz de niños nuevamente.
tenga en cuenta que la matriz de niños externa puede ser una matriz vacía y la matriz de niños dentro de la matriz de niños puede no estar presente. por lo que la entrada puede ser de tipos como a continuación
input = { item_type: { id: '1', name: 'name1', }, children: [] //empty children array } input = { item_type: { id: '1', name: 'name1', }, children: [ //no children array within { type_1: { id: '12', }, type: “item1-type”, }, ] }¿Cómo puedo encontrar el recuento de tipo: "elemento2" dentro de la matriz de niños considerando la entrada del ejemplo 1?
entonces el conteo esperado es 6.
Podría alguien ayudarme con esto. Gracias. nuevo en la programación.
const findAllChildrenOfType = (obj, type) => { let count = 0; if (obj.type === type) count++; if (obj.children) { obj.children.forEach(child => { const childCount = findAllChildrenOfType(child, type); count += childCount; }) } return count; } console.log(findAllChildrenOfType(input, "item2"))