Skip to content

Instantly share code, notes, and snippets.

@romaefGit
Created October 29, 2019 20:04
Show Gist options
  • Select an option

  • Save romaefGit/9d937422dd90baf5687ed0cd041b4ca1 to your computer and use it in GitHub Desktop.

Select an option

Save romaefGit/9d937422dd90baf5687ed0cd041b4ca1 to your computer and use it in GitHub Desktop.
JavaScript - Recursividad con javascript
var empleadosByUser = [];
var termino = false;
/**
* Autor - Romario Augusto Estrada Flórez -romarioestrada.ff@hotmail.com
* [recursividad Esta función hace que se vayan agregando empleados a un usuario, cada vez que en cuentre uno dentro de otro.
Ejemplo JSON = {
"Usuario": "Moni",
"Area": "Sistemas",
"Jefe": "Sopo",
"IdUsuario": "8",
"IdJefe": "17",
"IdArea": "1",
"empleados": [{
"Usuario": "Roma",
"Area": "Sistemas",
"Jefe": "Moni",
"IdUsuario": "13",
"IdJefe": "8",
"IdArea": "1",
"empleados": [
{
"Usuario": "paola",
"Area": "Sistemas",
"Jefe": "Roma",
"IdUsuario": "12",
"IdJefe": "13",
"IdArea": "1",
"empleados": []
}
]
}]
}]
* @param {[Object]} usuario [Objeto del usuario con posibles empleados]
* @return {[Array]} [Arreglo de empleados encontrados en los empleados]
*/
var recursividad = function(usuario) {
empleadosByUser.push(usuario);
if (existTheValue(usuario.empleados)) {
for (var i = 0; i < usuario.empleados.length; i++) {
recursividad(usuario.empleados[i]);
}
} else {
termino = true;
}
if (termino) {
// console.log(('empleadosByUser > ', empleadosByUser);
return empleadosByUser;
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment