Ves al contingut principal

Objecte array

Els Arrays en JavaScript són objectes especials que s'utilitzen per emmagatzemar col·leccions ordenades de dades. A diferència de molts altres llenguatges, els arrays de JavaScript poden contenir dades de diferents tipus (números, strings, objectes, etc.) i tenen una mida dinàmica.

L'Objecte Array

Els arrays tenen poques propietats, però la més important és la que defineix la seva mida.

length

La propietat length retorna el nombre d'elements en un array.

Propietat Descripció Modificable
length Retorna el nombre d'elements (o l'índex més alt + 1). ✅

Exemple

JavaScript
let fruites = ['poma', 'plàtan', 'kiwi'];

console.log(fruites.length); // Resultat: 3

// CAS D'ÚS: Truncar (escurçar) l'array
fruites.length = 2;
console.log(fruites); // Resultat: ['poma', 'plàtan']

Mètodes

Els mètodes es divideixen en categories segons la seva funcionalitat:

Mutació (Modifiquen original)

Mètode Descripció Exemple
push() Afegeix un o més elements al final de l'array. arr.push('nou');
pop() Elimina i retorna l'últim element de l'array. let ultim = arr.pop();
unshift() Afegeix un o més elements a l'inici de l'array. arr.unshift('inici');
shift() Elimina i retorna el primer element de l'array. let primer = arr.shift();
splice() Mètode versàtil: permet afegir, eliminar o substituir elements començant per un índex. arr.splice(2, 1, 'substitut'); (A l'índex 2, elimina 1 i afegeix 'substitut').
sort() Ordena els elements de l'array alfabèticament per defecte. Requereix una funció de comparació per a números. arr.sort((a, b) => a - b); (Per ordenar números).
reverse() Inverteix l'ordre dels elements de l'array. arr.reverse();

Exemple de Mutació

JavaScript
let colors = ['blau', 'vermell', 'groc'];

colors.push('verd');     // colors és ara ['blau', 'vermell', 'groc', 'verd']
let eliminat = colors.shift(); // eliminat és 'blau', colors és ['vermell', 'groc', 'verd']

// Elimina 'groc' i afegeix 'taronja'
colors.splice(1, 1, 'taronja'); // colors és ara ['vermell', 'taronja', 'verd']

Accés i Iteració (No modifiquen original)

Aquests mètodes no canvien l'array original, sinó que retornen un valor nou o un nou array.

Mètode Descripció Exemple
concat() Combina dos o més arrays i retorna un nou array. let nouArr = arr1.concat(arr2);
slice() Retorna una secció superficial (shallow copy) de l'array original en un nou array. let copia = arr.slice(1, 3); (Des de l'índex 1 fins al 3, sense incloure'l).
join() Converteix tots els elements de l'array en una cadena (string), utilitzant el separador especificat. let text = arr.join(' - ');
indexOf() Retorna el primer índex en què es pot trobar un element, o -1 si no és present. arr.indexOf('groc');
includes() Retorna un booleà (true o false) indicant si l'array conté un element concret. arr.includes('verd');

Exemple d'Accés

JavaScript
let digits = [1, 2, 3, 4, 5];
let lletres = ['a', 'b'];

// Concat
let combinat = digits.concat(lletres); // [1, 2, 3, 4, 5, 'a', 'b']

// Slice
let part = digits.slice(2, 4); // [3, 4]

// Join
let csv = digits.join(','); // "1,2,3,4,5"

Iteració d'ordre superior (Looping i Transformació)

Aquests mètodes prenen una funció de callback com a argument i són fonamentals en la programació funcional moderna.

Mètode Descripció Cas d'Ús
forEach() Executa una funció callback una vegada per a cada element. No retorna res. Executar una acció (p. ex., imprimir) per a cada element.
map() Crea un nou array amb els resultats de la crida a una funció per a cada element. Transformar tots els elements d'un array (p. ex., multiplicar per 2).
filter() Crea un nou array amb tots els elements que superin la prova implementada per la funció de callback (que ha de retornar true). Seleccionar elements que compleixen una condició (p. ex., números parells).
reduce() Aplica una funció a un acumulador i a cada element de l'array (d'esquerra a dreta) per reduir-lo a un únic valor. Sumar tots els elements o calcular un valor únic a partir de l'array.
find() Retorna el primer element de l'array que satisfà la funció de prova. Trobar el primer objecte que té una propietat específica.
some() Retorna true si almenys un element de l'array satisfà la funció de prova. Comprovar si hi ha algun producte en estoc.
every() Retorna true si tots els elements de l'array satisfan la funció de prova. Comprovar si tots els usuaris són majors d'edat.

Exemples d'Iteració

JavaScript
const preus = [10, 25, 5, 50];

// 🔸 map(): Crear un nou array amb impostos
const preusAmbIva = preus.map(preu => preu * 1.21);
console.log(preusAmbIva); // Resultat: [12.1, 30.25, 6.05, 60.5]

// 🔸 filter(): Seleccionar només els barats
const ofertes = preus.filter(preu => preu < 30);
console.log(ofertes); // Resultat: [10, 25, 5]

// 🔸 reduce(): Sumar tots els elements
const sumaTotal = preus.reduce((acumulador, valorActual) => acumulador + valorActual, 0);
console.log(sumaTotal); // Resultat: 90