DMarlon Studio

Lección 8 · 8 de 20

Arrays: listas de valores · JavaScript

Guarde listas en arrays de JavaScript: índices desde 0, length, cambiar elementos, recorrerlos con for y for...of, y arrays de arrays.

JavaScript · Arrays: listas de valores en DMarlon Studio: el código del ejemplo y su salida en la terminal

Un array es una lista ordenada de valores entre corchetes, separados por comas. fruits guarda cuatro cadenas y `length` dice cuántas hay.

Cada elemento tiene una posición, su índice, que empieza en 0: fruits[0] es el primero y fruits[fruits.length - 1] el último. Si pide una posición que no existe, como fruits[10], obtiene undefined, no un error.

Con el índice también se cambia un elemento: fruits[1] = "kiwi". Fíjese en que fruits es const y aun así se puede modificar: const impide asignar otro array a la variable, no cambiar lo que hay dentro.

Para recorrer un array hay dos formas. El for clásico usa el índice i de 0 a length - 1 y suma las temperaturas para sacar la media. `for...of` da directamente cada valor, sin índices, y es más claro cuando no hace falta la posición, como al contar los días de 22 grados o más.

Un array puede contener otros arrays: el tablero de tres en raya es una lista de tres filas, y board[1][1] es la casilla del centro (fila 1, columna 1).

Código · main.js

// An array is an ordered list inside [ ].const fruits = ["apple", "banana", "cherry", "mango"];console.log(fruits);console.log("How many:", fruits.length);// Positions (indexes) start at 0.console.log("First:", fruits[0], "| Last:", fruits[fruits.length - 1]);console.log("Position 10:", fruits[10]);// Change an element through its index.fruits[1] = "kiwi";console.log("After the change:", fruits);// An array of numbers: one week of temperatures.const temps = [18, 21, 19, 24, 26, 22, 17];let sum = 0;for (let i = 0; i < temps.length; i++) {  sum += temps[i];}console.log("Average temperature:", (sum / temps.length).toFixed(1));// for...of goes through the values directly, without indexes.let warmDays = 0;for (const t of temps) {  if (t >= 22) warmDays++;}console.log("Days at 22 or more:", warmDays);// An array of arrays: a noughts and crosses board.const board = [["X", "O", "X"], [" ", "X", "O"], ["O", " ", "X"]];console.log("Centre square:", board[1][1]);for (const row of board) console.log(row);

Salida · node main.js

[ 'apple', 'banana', 'cherry', 'mango' ]
How many: 4
First: apple | Last: mango
Position 10: undefined
After the change: [ 'apple', 'kiwi', 'cherry', 'mango' ]
Average temperature: 21.0
Days at 22 or more: 3
Centre square: X
[ 'X', 'O', 'X' ]
[ ' ', 'X', 'O' ]
[ 'O', ' ', 'X' ]

Para recordar

  • Los índices empiezan en 0; el último es length - 1.
  • Una posición que no existe da undefined.
  • Un array const se puede modificar, pero no reasignar.
  • for...of recorre los valores sin índices.

Ejercicio

Añada un array con las notas de cinco exámenes y escriba la nota más alta, la más baja (recorriéndolo con for...of) y la media con un decimal.