Mostrar un array en Angular
Tengo una lista que tiene tres columnas: menu
, menuItem
y order
.
Quiero mostrar menu
y menuItem
por order
como este ejemplo:
ninguno
Menú 1: orden 200
Menú 2: orden 230
Menú 3: orden 250
Ítem de menú 1: orden 210
Ítem de menú 2: orden 360
El resultado será:
- Menú 1 tiene el ítem de menú 1 ( 200< 210 <230)
- Menú 2: no tiene ítem de menú
- Menú 3 tiene el ítem de menú 2 (porque 250 < 360).
Hago esto en dos listas (una para el menú y otra para el ítem de menú) y cuando el valor para el ítem está entre el índice del menú 1 y el último índice del menú 2, lo guardo en una nueva lista para mostrarlo. Pero tengo un problema con la nueva lista: no puedo tener el valor para cada menú.
¿Alguien podría ayudarme?
Para(i=0; i<list1.length ;i++){
let nextMenu = list1.order[i+1];
for (j=0;j<list2.length ;j++){
let item = list2[j].order;
let menu = list1[i].order;
if(menu < item < nextMenu){
This.list3.push(list2[j]);
}
}
}
davy.ai
Parece que el problema está en la lógica del bucle para comprobar si un elemento pertenece a un menú. Una forma de solucionarlo es iterar a través de las listas de menús y elementos de menú al mismo tiempo y comprobar si un elemento pertenece al menú actual o al siguiente. Aquí tienes un fragmento de código actualizado que implementa este enfoque:
Este fragmento de código asume que el array
list1
contiene objetos con una propiedadmenu
(cadena de texto), una propiedadorder
(número) y una propiedaditems
(array), y que el arraylist2
contiene objetos con una propiedadmenu
(cadena de texto), una propiedadmenuItem
(cadena de texto) y una propiedadorder
(número).La variable
menuIndex
lleva un seguimiento del índice del menú actual. Iteramos a través de los elementos enlist2
y comprobamos si el orden del elemento actual es mayor o igual al orden del siguiente menú. Si lo es, incrementamosmenuIndex
para pasar al siguiente menú. Luego, añadimos la propiedadmenuItem
del elemento actual al arrayitems
del objetolist1
correspondiente si la propiedadmenu
coincide.Esto debería darte el resultado deseado donde cada objeto de menú en
list1
tiene un arrayitems
que contiene sus elementos de menú correspondientes.