¿Hay métodos por los cuales puedo omitir una cantidad particular de objetos y tomar una cierta cantidad de objetos de una matriz en javascript?
Básicamente, el patrón que estoy buscando es este.
Digamos que tengo una matriz de 8 objetos.
Primer bucle:
Devuelve objetos en el índice 0 a 3 de la matriz.
Segundo bucle:
devolver objetos en el índice 4 a 7 de la matriz.
Tercer bucle :
De vuelta al principio, devuelva los objetos de 0 a 3 nuevamente.
Indefinidamente.....
Me encantaría ver una solución basada en jquery si es posible, pero también estoy abierto a las implementaciones de JavaScript sin procesar, ya que estoy ansioso por aprender.
Salud.
Creo que quieres Array.slice o Array.splice .
var ary = [0,1,2,3,4,5,6,7]; alert(ary.splice(0,3).join(','));
Algo como esto (JavaScript simple, sin necesidad de jQuery;)):
var iterator = function(a, n) { var current = 0, l = a.length; return function() { end = current + n; var part = a.slice(current,end); current = end < l ? end : 0; return part; }; };
Entonces puedes llamarlo:
var next = iterator(arr, 3); next(); // gives the first three next(); // gives the next three. //etc.
De esta forma, la última iteración podría devolver menos elementos. También puede extenderlo y hacer que la función acepte un paso variable y un parámetro de inicio diferente.
Si desea envolver, como si solo quedaran dos elementos, para tomar elementos desde el principio, entonces se vuelve un poco más sofisticado;)
Actualización: Wrap around sería algo como esto:
var iterator = function(a, n) { var current = 0, l = a.length; return function() { end = current + n; var part = a.slice(current,end); if(end > l) { end = end % l; part = part.concat(a.slice(0, end)); } current = end; return part; }; };
Mira esto. matriz.rebanada()