Uso del método slice para extraer porciones de un array en JavaScript

Clase 33 de 55Curso de Fundamentos de JavaScript

Contenido del curso

Introducción a JavaScript

Estructuras de Control y Lógica

Manipulación de Arrays

Programación Orientada a Objetos

Asincronía en JavaScript

Resumen

Extraer solo una parte de un array sin alterar el original es una operación frecuente en programación. El método slice permite hacer exactamente eso: tomar una fracción específica de un array indicando posiciones de inicio y fin, y devolver un nuevo array con esos elementos.

¿Cómo funciona slice con un solo parámetro?

Cuando se le pasa un único argumento, slice lo interpreta como el índice de inicio. A partir de esa posición, devuelve todos los elementos hasta el final del array [01:00].

Por ejemplo, con este array de animales:

javascript const animals = ['ant', 'bison', 'camel', 'duck', 'elephant'];

console.log(animals.slice(2)); // ['camel', 'duck', 'elephant']

Al pasar 2, se obtienen los elementos desde la posición dos (camel) hasta el último (elephant).

¿Qué sucede cuando se usan dos parámetros en slice?

El segundo parámetro indica el índice final, pero ese índice no se incluye en el resultado [01:30]. Es decir, slice extrae desde el inicio hasta una posición antes del valor indicado.

javascript console.log(animals.slice(2, 4)); // ['camel', 'duck']

  • El índice 2 corresponde a "camel".
  • El índice 4 corresponde a "elephant", pero no se incluye.
  • El resultado contiene solo las posiciones 2 y 3.

Si se quiere incluir el elefante, hay que ajustar el segundo parámetro:

javascript console.log(animals.slice(1, 5)); // ['bison', 'camel', 'duck', 'elephant']

¿Se pueden usar índices negativos con slice?

Sí. Los números negativos permiten contar desde el final del array hacia atrás [02:30]. Esto resulta muy útil cuando el array tiene muchos elementos y solo interesan los últimos.

  • -1 representa el último elemento.
  • -2 representa el penúltimo.

javascript console.log(animals.slice(-2)); // ['duck', 'elephant']

También se pueden combinar índices positivos y negativos:

javascript console.log(animals.slice(2, -1)); // ['camel', 'duck']

Aquí se toma desde la posición 2 hasta la posición -1 (elephant), que no se incluye.

¿Qué pasa si se llama a slice sin parámetros?

Cuando no se le pasa ningún argumento, slice devuelve una copia completa del array original [03:20].

javascript console.log(animals.slice()); // ['ant', 'bison', 'camel', 'duck', 'elephant']

¿Por qué slice no modifica el array original?

Una característica fundamental de slice es su inmutabilidad: nunca altera el array sobre el que se aplica. Siempre genera un array nuevo con la porción solicitada [03:30]. Esto permite ejecutar múltiples llamadas a slice sobre el mismo array sin preocuparse por efectos secundarios.

En resumen, las formas de usar slice son:

  • Sin parámetros: devuelve todo el array.
  • Un parámetro (inicio): desde esa posición hasta el final.
  • Dos parámetros (inicio, fin): desde inicio hasta fin sin incluir el fin.
  • Valores negativos: cuentan desde el final del array.

Si quieres practicar, prueba combinaciones diferentes de índices positivos y negativos y comparte qué resultados obtuviste.