Foros del Web » Programando para Internet » Javascript »

Crear recursividad en para nodos infinitos

Estas en el tema de Crear recursividad en para nodos infinitos en el foro de Javascript en Foros del Web. Muy buenas estoy haciendo un arbol de nodos para hijos infinitos el caso es que ya puedo ver los hijos pero necesito que la funcionalidad ...
  #1 (permalink)  
Antiguo 07/05/2013, 04:44
Avatar de migue1891  
Fecha de Ingreso: enero-2012
Mensajes: 50
Antigüedad: 12 años, 3 meses
Puntos: 0
Crear recursividad en para nodos infinitos

Muy buenas estoy haciendo un arbol de nodos para hijos infinitos el caso es que ya puedo ver los hijos pero necesito que la funcionalidad me reconozca todos los nodos hasta llegar a un nodo hoja.

Los datos los recojo desde un JSON a traves de knockout y los meto en un objeto.

Os dejo la parte del codigo

Código Javascript:
Ver original
  1. var categories = [];
  2.  
  3.                 for (var i = 0; i < data.length; ++i) {
  4.  
  5.                     var category = new CategoryViewModel();
  6.                     category.CategoryName = data[i].CategoryName;
  7.                     category.Id = data[i].Id;
  8.                     category.ParentCategory = null;
  9.  
  10.                     for (var j = 0; j < data[i].ChildCategories.length; ++j) {
  11.  
  12.                         var childCategory = new CategoryViewModel();
  13.                         childCategory.CategoryName = data[i].ChildCategories[j].CategoryName;
  14.                         childCategory.Id = data[i].ChildCategories[j].Id;
  15.                         childCategory.ParentCategory = category;
  16.                         category.ChildCategories.push(childCategory);
  17.                     }
  18.  
  19.  
  20.                     categories[i] = category;
  21.                 }

Muchísimas gracias de antemanos por cualquier ayuda
  #2 (permalink)  
Antiguo 07/05/2013, 05:38
Avatar de marlanga  
Fecha de Ingreso: enero-2011
Ubicación: Murcia
Mensajes: 1.024
Antigüedad: 13 años, 3 meses
Puntos: 206
Respuesta: Crear recursividad en para nodos infinitos

Escrito a pelo y sin testear, pero la esencia, para un recorrido en profundidad, es esta:

Código Javascript:
Ver original
  1. var categories = [];
  2. function recursiveCategory(cat,parent){
  3.     var category = new CategoryViewModel();
  4.     category.CategoryName = cat.CategoryName;
  5.     category.Id = cat.Id;
  6.     category.ParentCategory = parent;
  7.     categories.push(category);
  8.     for (var i = 0; i < cat.ChildCategories.length; ++i)
  9.     {
  10.         recursiveCategory(cat.ChildCategories[i],category);
  11.     }
  12. }
  13. if (data.length>0) recursiveCategory(data[0],null);

Etiquetas: funcion, js, nodos, recursividad
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:16.