Nos permiten guardar una colección de datos primitivos o no primitivos.
A la hora de hablar de este tipo de datos tenemos que tener claro dos conceptos:
const nombres = ['Xurxo', 'Jorge', 'George']
const indice = 2
console.log(`${nombres[indice]} se encuetra en la posición ${indice}`) // >> 'George se encuetra en la posición 2'
// Inicializar una lista, vector o array
const newArray = []
// Otra forma alternativa para inicializar un array a través de un instancia
const otherArray = new Array()
// Si quieres definir un array con un tamaño determinado
const arrayWithThreeItems = new Array(3)
// Array con datos
const names = ['Xurxo', 'Irene', 'Manuel']
Si queremos ver formas más avanzadas podemos ver Cómo inicializar Array con valores en JavaScript
numeros.length // >> 3
const nombres = ['Xurxo', 'David', 'Rebeca', 'Mónica']
for (let i = 0; i < nombres.length; i++) {
console.log(nombres[i]) // >> 'Xurxo', 'David', 'Rebeca', 'Mónica'
}
console.log(`Hay ${nombres.length} personas.`) // >> 'Hay 4 personas.'
Partamos del siguiente ejemplo:
const numeros = [0, -1 , 1]
numeros.push(0) // >> [0, -1, 1, 0]
numeros.push(22) // >> [0, -1, 1, 0, 22]
const removedItem = numeros.pop() // >> [0, -1, 1, 0]
console.log(removedItem) // >> 22
numeros.join('❤️') // >> '0❤️-1❤️1❤️0'
A CONTINUACIÓN VEREMOS MÉTODOS AVANZADOS EN LOS ARRAYS
Deseamos obtener la suma total de los elementos contenidos en el siguiente array:
const numeros = [1, 2, 3, 4]
Con un ciclo for y un acumulador podríamos obtener la suma total de los números del array:
let addedNumbers = 0
for (let i = 0; i < numeros.length; i++) {
addedNumbers += numeros[i]
}
console.log(numeros.join('+'),'=',addedNumbers) // >> '1+2+3+4' '=' 10
Podríamos obtener el mismo resultado con un método o función reductora:
const addedNumbers = numeros.reduce((accumulator, currentValue) => {
return accumulator + currentValue
}) // Nótese que en la variable accumulator no me hizo falta iniciarlo a cero
console.log(numeros.join('+'),'=',addedNumbers) // >> '1+2+3+4' '=' 10
Otro ejemplo. Para calcular cúantos número positivos, negativos o ceros que hay en un array podemos realizarlo utilizando un lenguaje imperativo:
const numeros = [0, 0, -3, 4]
let pos = 0
let neg = 0
let zer = 0
for (let i = 0; i < numeros.length; i++) {
if (numeros[i] > 0) pos++
else if (numeros[i] < 0) neg++
else zer++
}
console.log('Positives:',pos, 'Negatives:', neg, 'Zeros:',zer) // >> 'Positives:' 1 'Negatives:' 1 'Zeros:' 2
O de manera declarativa:
// contadores: [positives, negatives, zeros]
const contadores = numeros.reduce((previousValue, currentValue) => {
if (currentValue > 0) previousValue[0]++
else if (currentValue < 0) previousValue[1]++
else previousValue[2]++
return previousValue
}, [0,0,0])
console.log('Positives:',contadores[0], 'Negatives:', contadores[1], 'Zeros:',contadores[2]) // >> 'Positives:' 1 'Negatives:' 1 'Zeros:' 2
Nos permite iterar sobre cada elemento de un array y devolver un nuevo array con las operaciones realizada:
const edades = [18, 15, 13, 1]
const mayorMenorEdades = edades.map((value) => {
return value >= 18 ? 'Mayor de edad: ' + value : 'Menor de edad: ' + value
})
console.log(mayorMenorEdades) // >> [ 'Mayor de edad: 18', 'Menor de edad: 15', 'Menor de edad: 13', 'Menor de edad: 1' ]