Lección 6: Array

Una variable puede contener más de un valor, una lista con diferentes elementos. Como un cajón que abrirlo te encuentras más cajoncitos. A esta característica se le denomina array.

Crear

// Vacío
const semana = [];

// Lleno
const semana = ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'];

Leer

console.log(semana[1]);
// martes

Incluso puedes capturar usando indices negativos con at. Por ejemplo, ¿cual es el último elemento?

console.log(semana.at(-1));
// domingo

Longitud

console.log(semana.length);

// 7

Añadir

let meses = [];
meses.push('Enero');

// 1
const dosMeses = meses.concat('Febrero');

console.log(dosMeses);
// ['Enero', 'Febrero']

console.log(meses);
// ['Enero']

Eliminar

Primer elemento

Siempre debemo evitar modificar el contenido de las variables. La estrategia sería no alterar el array original creando uno nuevo sin el primer elemento. Podemos usar slice(1) para ello. Lo clonará desde la posición que deseemos.

const semana = ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'];
const semanaSinLunes = meses.slice(1);

// ['martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo']

En caso que debamos alterar su contenido, disponemos de shift().

let semana = ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'];

semana.shift();

console.log(semana);
// ['martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo']

Último elemento

Para no alterar el contenido del array volvemos a utilizar slice. En este caso clonaremos desde la posición 0 a la penúltima (-1 o semana.length - 1).

const semana = ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'];

const semanaSinDomingo = semana.slice(0, -1);

console.log(semanaSinDomingo);
// ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado']

En caso de modificar el array, podemos usar pop().

let semana = ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'];

semana.pop();

console.log(semana);
// ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado']

Posición concreta

Por ejemplo el sábado, que ocupa la posición 5.

const semana = ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'];
const semanaSinSabado = semana.filter(function(valor, posicion) {
    return posicion !== 5
});

console.log(semanaSinSabado);
// ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'domingo]

Si quieremos modificinar el array, disponemos de splice (no confundir con slice). El primer argumento es la posición y el segundo la cantidad de elementos a eliminar (en el ejemplo será 1).

let semana = ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'sábado', 'domingo'];

semana.splice(5, 1);

console.log(semana);
// ['lunes', 'martes', 'miércoles', 'jueves', 'viernes', 'domingo]

Avanzado

Funciones de Transformación, Conversión y Comprobación

Hay una serie de funciones que te serán de mucha ayuda para gestionarlos.

  • filter
  • reduce
  • map
  • fill
  • find
  • includes, busca si existe un elemento dentro de un array.
  • some, te dice si un array cumple la condición en algún momento.
  • every, igual que some pero debe cumplirse siempre.
  • forEach, recorre un array obteniendo su posición y valor.

Puedes leer un resumen en el siguiente artículo de javascript funcional.

Set (Conjuntos)

Para evitar repeticiones dentro de un array puedes usar una herramienta específica para ello.

// Crear
let setPelis = new Set(); // No permite repeticiones

// Anyadir
setPelis.add('Lo que el viento se llevó')
setPelis.add('Lo que el viento se llevó')
setPelis.add('La gran evasion')

console.log(setPelis)
// ['Lo que el viento se llevó', 'La gran evasión']

// Comprobar

console.log('SET: Tiene la Gran evasion? ' + setPelis.has('La gran evasion'))
// SET: Tiene la Gran evasion? true

console.log('SET: ' + setPelis.size)
// SET: 2

6-1 6-2 6-3 6-4 6-5

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?

No te sientas obligado a realizarme una donación, pero cada aportación me ayuda a mantener el sitio en activo para que continúe existiendo y me motiva a continuar creando nuevo contenido.

Comprame un café
Pulsa sobre la imagen
  • 1 café: Se mantiene el dominio durante 4 meses.
  • 2 cafés: Se paga 1 mes de servidor.
  • 3 cafés: Se cubre 1 mes de Black box.

Comentarios

{{ comments.length }} comentarios

Nuevo comentario

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

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

Escribe el primer comentario