38.1 Metodi dell’oggetto Array
toString
Dato il seguente array:
let days = ['MONDAY', 'TUESDAY', 'WEDNESDAY', 'THURSDAY', 'FRIDAY', 'SATURDAY', 'SUNDAY'];
se vogliamo trasformare l’array in una stringa abbiamo a disposizione il metodo toString
console.log(days.toString());
otterremo tutto il contenuto dell’array come una stringa e ogni dato dell’array sarà separato da una virgola
"MONDAY,TUESDAY,WEDNESDAY,THURSDAY,FRIDAY,SATURDAY,SUNDAY"
slice
permette di copiare una porzione di un array. Mettiamo un pezzo dell’array days dentro un altro:
let arrayCopy = days.slice(0,2); console.log(arrayCopy);
il primo parametro del metodo slice è l’inizio, il secondo è la fine, infatti:
["MONDAY", "TUESDAY"]
abbiamo copiato i dati dalla posizione 0 alla posizione 2 NON INCLUSA.
Se non passo nessun parametro ottengo una copia speculare dell’intero array
let arrayCopy = days.slice(); console.log(arrayCopy);
Se modifico i valori della copia, l’array di origine rimane invariato
let arrayCopy = days.slice(); arrayCopy[1] = 'Martedì'; console.log(days); console.log(arrayCopy);
vediamo il confronto tra i 2 array
["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"] ["MONDAY", "Martedì", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
join
Se vogliamo trasformare un array in una stringa separando i valori da un separatore a nostra scelta
console.log(days.join('/'));
ecco il risultato
MONDAY/TUESDAY/WEDNESDAY/THURSDAY/FRIDAY/SATURDAY/SUNDAY
il metodo join non modifica l’array di partenza, per memorizzare il valore possiamo passarlo ad una variabile
let giorni = days.join(' / '); console.log(giorni); console.log(days);
risultato:
MONDAY / TUESDAY / WEDNESDAY / THURSDAY / FRIDAY / SATURDAY / SUNDAY ["MONDAY", "TUESDAY", "WEDNESDAY", "THURSDAY", "FRIDAY", "SATURDAY", "SUNDAY"]
push e unshift
Se voglio aggiungere un elemento alla fine dell’array, lo posso fare con il metodo push
days.push('lunedi'); console.log(days);
Stessa cosa l’unshift aggiunge un valore all’inizio dell’array
days.unshift('LUNDI'); console.log(days);
splice
permette di aggiungere un valore in una posizione specifica dall’array che passo come primo parametro
days.splice(5,0,'sabato'); console.log(days);
il valore ‘sabato’ viene aggiunto dopo il quinto elemento. Il secondo parametro del metodo slice indica quanti elementi voglio eliminare a partire dalla posizione indicata come primo parametro, nel nostro caso zero perchè non voglio eliminare nessun elemento.
Supponiamo di voler eliminare un valore alla posizione 5 e di volerlo memorizzare in una variabile:
let valoreTolto = days.splice(5,1); console.log(valoreTolto); console.log(days);
In questo caso non ho inserito nessun valore nel terzo parametro.
Ricapitolando, i parametri del metodo splice si possono descrivere così:
splice(indice , numeriElementiDaTogliere, elementiDaAggiungere);
per aggiungere più elementi basta inserirli come parametri aggiuntivi
let valoreTolto = days.splice(5,1,'test1','test2');
indexOf
per lavorare con splice devo conoscere a priori i valori dell’array e la loro posizione. Qualora non sappia in che posizione si trovi un determinato valore faccio ricorso al metodo indexOf
let indice = days.indexOf('MONDAY'); let valoreTolto = days.splice(indice,1); console.log(valoreTolto); console.log(days);
il valore MONDAY sarà eliminato dall’array days, perchè indexOF mi restituirà la posizione in cui l’ha trovato e splice a partire da quella posizione elimina un elemento
days.splice(indice,1);