Función de rango en Javascript | Programador Web Valencia

Función de rango en Javascript

1 minuto

Javascript

Una de las funciones más prácticas a la hora de iterar es range(), muy común en lenguajes como Clojure, Python o PHP; pero en JavaScript no disponemos de ella a no ser que usemos librerías externas como Lodash. Por fortuna, si usamos un poco de ingenio y Array.from() podemos obtener prácticamente la misma funcionalidad.

/**
 * Returns an array with a sequence.
 *
 * @param {number} start Beginning of the range.
 * @param {number} stop End of range.
 * @param {number} step Interval between numbers. Default is 1.
 * @return {array}
 */
function range(start, stop=undefined, step=1) {
    const startArray = stop  === undefined ? 0 : start;
    const stopArray = stop  === undefined ? start : stop;
    return Array.from({ length: (stopArray - startArray) / step + 1}, (_, i) => startArray + (i * step));
}

Algunos ejemplos usándola.

range(4);
// [0, 1, 2, 3, 4]

range(5, 15);
// [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]

range(1, 10, 2);
// [1, 3, 5, 7, 9]

range(0, 50, 5);
// [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50]

¿Es posible conseguir lo mismo usando un map()? Por supuesto, tenemos diversos enfoques para solucionarlo, aunque usar Array.from evita un Array intermedio y es más natural al lenguaje.

Esta obra está bajo una Licencia Creative Commons Atribución-NoComercial-SinDerivadas 4.0 Internacional.

Atribución/Reconocimiento-NoComercial-SinDerivados 4.0 Internacional

¿Me ayudas?

Comprame un café
Pulsa sobre la imagen

No te sientas obligado a realizar una donación, pero cada aportación mantiene el sitio en activo logrando que continúe existiendo y sea accesible para otras personas. Además me motiva a crear nuevo contenido.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

Nueva replica  {{ formatEllipsisAuthor(replyComment.author) }}

Acepto la política de Protección de Datos.

Escribe el primer comentario

Tal vez también te interese...