Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] Dividir array según cantidad limite en varios elementos

Estas en el tema de Dividir array según cantidad limite en varios elementos en el foro de Javascript en Foros del Web. Tengo este array. array = Array(50,180,40,15,153,180,10); El límite es 200. Sumo cada elemento progresivamente. Cuando la suma supera 200, la suma es 0. Marco ese ...
  #1 (permalink)  
Antiguo 24/02/2015, 17:05
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 17 años, 5 meses
Puntos: 10
Dividir array según cantidad limite en varios elementos

Tengo este array.

array = Array(50,180,40,15,153,180,10);


El límite es 200.

Sumo cada elemento progresivamente. Cuando la suma supera 200, la suma es 0. Marco ese índice. Sigo con el siguiente etc.

El problema que tengo es que si la suma es inferior a 200, pero el siguiente elemento hace que la supere(180+40, por ejemplo), calcula mal y me incluye el siguiente elemento en el item actual.

Es para hacer un paginador a4 según la altura de unos divs. Cada página aumentará hasta un límite.

Perdonad mi mala expresión. Llevo toda la tarde con esto y no soy capaz de resolverlo.

Caricatos, I need your help!!!
  #2 (permalink)  
Antiguo 25/02/2015, 06:43
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Dividir array según cantidad limite en varios elementos

Me gustaría mucho ayudarte pero no entiendo bien qué quieres hacer :/

P.S: No uses array como nombre de variable, es un palabra reservada del lenguaje
  #3 (permalink)  
Antiguo 25/02/2015, 06:45
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 17 años, 5 meses
Puntos: 10
Respuesta: Dividir array según cantidad limite en varios elementos

Tengo muchos div con diferentes alturas.

En un contenedor página, tienen que caber varios div hasta llegar al límite de altura de la página.
Si pasa el límite, el div va a la siguiente página. Así sucesivamente.

Es para paginar un html lleno de líneas en un flipbook turn.js por paginas.
  #4 (permalink)  
Antiguo 25/02/2015, 06:48
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 17 años, 5 meses
Puntos: 10
Respuesta: Dividir array según cantidad limite en varios elementos

Lo que quiero es dividir el html que tengo para que quepa por páginas en un flipbook.

De ahí el límite. Si el último div que inserto ocupa un espacio mayor que la suma total de elementos ocupados en la página actual, tiene que ir a la siguiente...

Creo que cada vez me explico peor.
  #5 (permalink)  
Antiguo 25/02/2015, 06:50
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Dividir array según cantidad limite en varios elementos

Jjaajaja no te preocupes! Lo que no termino de entender es que hay que hacer con los elementos del array. Cada uno de esos elementos representa la altura de un div?

Y lo que querés hacer es ir sumando el primero con el segundo, esos dos más el tercero, todo eso mientras no se supere la condición del alto máximo que es 200? Y si se supera partir de la posición no sumada para generar otra página? Algo así?
  #6 (permalink)  
Antiguo 25/02/2015, 06:58
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 17 años, 5 meses
Puntos: 10
Respuesta: Dividir array según cantidad limite en varios elementos

Si.

En el array tengo las alturas del div, para ir sumando en loop.

Pero a veces hay dos elementos consecutivos que suman entre ellos la altura total de la página, y me lío...
  #7 (permalink)  
Antiguo 25/02/2015, 07:20
Avatar de GeekGirl  
Fecha de Ingreso: julio-2014
Mensajes: 423
Antigüedad: 9 años, 9 meses
Puntos: 44
Respuesta: Dividir array según cantidad limite en varios elementos

Es un pequeño lío. Acabo de ver que habías dado un ejemplo de lo que estás haciendo en el foro de PHP. Por qué duplicas los temas? :/

http://www.forosdelweb.com/f18/probl...array-1121639/
  #8 (permalink)  
Antiguo 25/02/2015, 07:23
Avatar de Manuellama  
Fecha de Ingreso: noviembre-2006
Ubicación: Zafra, Extremadura, Spain, Spain
Mensajes: 174
Antigüedad: 17 años, 5 meses
Puntos: 10
Respuesta: Dividir array según cantidad limite en varios elementos

Porque estoy trabajando con dos lenguajes (php y javascript) y no sabía en cual ponerlo.

No me importaba qué lenguaje usar para esto.
  #9 (permalink)  
Antiguo 25/02/2015, 15:37
 
Fecha de Ingreso: julio-2006
Ubicación: Barcelona
Mensajes: 244
Antigüedad: 17 años, 9 meses
Puntos: 32
Respuesta: Dividir array según cantidad limite en varios elementos

No se realmente qué quieres decir con marcar los indices. En todo caso he creado una función que dado un array de alturas y un límite, da los índices que son los primeros de cada página.

Código Javascript:
Ver original
  1. function getIndexs (heights, limit) {
  2.     var indexs = []
  3.     var sum = 0
  4.     if (heights.length > 0) {
  5.         indexs.push(0)
  6.     }
  7.     heights.forEach(function (height, index) {
  8.         sum += height
  9.         if (sum >= limit) {
  10.             indexs.push(index)
  11.             sum = height
  12.         }
  13.     })
  14.     return indexs
  15. }
  16.  
  17. var result1 = getIndexs([180, 40, 30, 90, 100, 110, 30, 60], 200)
  18. // [ 0, 1, 4, 5, 7 ]
  19. var result2 = getIndexs([50, 180, 40, 15, 153, 180, 10], 200)
  20. // [ 0, 1, 2, 4, 5 ]
  21.  
  22. console.log(result1)
  23. console.log(result2)

Un saludo!
__________________
github.com/xgbuils | npm/xgbuils

Etiquetas: cantidad, dividir, elementos, limite, según
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 19:13.