Slide from Boolean about Array Methods. Il Pdf illustra i metodi degli array in JavaScript, come localeCompare() e sort(), con esempi di codice. La presentazione, utile per studenti universitari di Informatica, include casi d'uso per l'ordinamento di stringhe e array di oggetti.
Mostra di più23 pagine


Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
ripasso sui metodi principali
Un metodo è una funzione associata a un oggetto: in questo caso, l'array. Eh sì, tutto è un oggetto in JavaScript!
OGNI metodo restituisce un valore! Sapere cosa ritorna ci permette di usarli al massimo delle loro potenzialità.
I metodi diretti sono Array Methods che lavorano direttamente sui valori o sulla struttura dell'array.
I metodi funzionali sono Array Methods che lavorano dinamicamente sugli elementi dell'array (tramite una callback function) Abbiamo già visto forEach, map, filter, find. Ripassino?
COSA RITORNA? undefined. Non restituisce nulla di utile, serve solo per "fare cose". COSA FA? Per ogni elemento dell'array esegue la callback function passata come argomento.
1
const numeri = [1, 2, 3];
2
numeri . forEach ( numero => {
3
console . log ( numero) ;
4
}) ;
5
// Output: 1, 2, 3
6
/ / Ritorna: undefined
COSA RITORNA? Array. Della stessa lunghezza dell'array di partenza. COSA FA? Applica una funzione a ogni elemento e crea un nuovo array con i risultati. La callback function ritorna un nuovo elemento.
1
const numeri = [1, 2, 3];
2
const doppi = numeri . map (numero => {
3
return numero * 2;
4
5
console. log(doppi) ; // Output: [2, 4, 6]
6
/ / Ritorna: un nuovo array
1
COSA RITORNA? Array. Con lunghezza uguale o minore a quella dell'array di partenza. COSA FA? Filtra gli elementi che soddisfano una certa condizione e ritorna un nuovo array che li contiene. La callback function ritorna SEMPRE un booleano!
1
const numeri = [1, 2, 3, 4];
2
const pari = numeri. filter (numero => {
3
return numero % 2 === 0;
4
} ) ;
5
console. log(pari) ; // Output: [2, 4]
true: conserva
false: scarta
6
/ / Ritorna: un nuovo array
COSA RITORNA? Primo elemento trovato. Ritorna undefined se nessun elemento soddisfa la condizione. COSA FA? Cerca il primo elemento che soddisfa una condizione dettata dalla callback function. La callback function ritorna SEMPRE un booleano!
1
const numeri = [1, 2, 3, 4];
2
const primoPari = numeri . find ( numero => {
true: conserva
3
return numero % 2 === 0;
false: scarta
4
} ) ;
5
console. log(primoPari) ; // Output: 2
6
/ / Ritorna: il primo elemento che soddisfa la condizione
Sia i metodi diretti, sia i metodi funzionali possono essere considerati metodi manipolativi se modificano direttamente l'array originale.
Snacks Array Methods Promise . all ( ) con .map ()
ma non per questo difficili
COSA RITORNANO? true o false.
1
const numeri = [1, 2, 3];
2
console . log ( numeri . some ( num => num > 2) ) ; // true
3
console. log ( numeri .every (num => num > 2)); // false
O
Ci ricordiamo come funziona
l'arrow function?
COSA RITORNA? Array. Lo stesso array di partenza (riordinato). COSA FA? Ordina gli elementi dell'array in base alla logica dettata dalla callback function, che rappresenta una funzione di confronto. Se ritorna un numero < 0, a viene ordinato prima di b. Se ritorna un numero = 0, Na e b non cambiano posizione. Se ritorna un numero > 0, a viene ordinato dopo b. La callback function ritorna SEMPRE un numero.
1
const numeri = [3, 1, 4] ;
2
numeri . sort ( (a, b) => {
3
return b - a;
4
} ) ;
5
console. log (numeri) ; // Output: [4, 3, 1]
6
/ / Ritorna: l'array in ordine decrescente
Ma se non ho a che fare con
dei numeri?
Il metodo delle stringhe localeCompare restituisce un numero intero che indica l'ordine tra due stringhe.
1
const a = "arancia" ;
2
const b = "banana" ;
3
a . localeCompare (b) ; // -1 (arancia viene prima)
4
a . localeCompare (a) ; // 0 (sono uguali)
5
b. localeCompare (a) ; // 1 (banana viene dopo)
Ma allora è perfetto da
usare con . sort ( ) !
Se ritorna -1:
· La stringa chiamante viene prima della
stringa passata come argomento.
Se ritorna 0:
· Le due stringhe sono uguali secondo le
regole di confronto.
Se ritorna 1:
· La stringa chiamante viene dopo la
stringa passata come argomento.
Utilizzare localeCompare in sort ( ) è perfetto per determinare l'ordine alfabetico.
1
const frutti = [ 'banana' , 'arancia' , 'ciliegia' ] ;
2
frutti . sort( (a, b) => {
3
return b. localeCompare (a) ;
4
});
5 console. log (frutti) ;
6 / / Output: [ "ciliegia" , "banana", "arancia" ]
7 / / Ritorna: l'array in ordine decrescente
Ma se voglio ordinare un
array di oggetti?
1
const persone = [
2
{ nome: 'Hyur', età: 29 } ,
3
{
nome: 'Mario', età: 33 } ,
4
{ nome: 'Luigi', età: 27 }
5
6
7
/ / Ordine alfabetico (nome) crescente
8
persone . sort ( (a, b) => a.nome. localeCompare (b. nome) ) ;
9
10
/ / Ordine numerico (età) decrescnete
11 persone. sort( (a, b) => b.età - a.età) ;
WAIT A MINUTE ....
THAT WAS SO EASY!
Snacks Array Methods Avanzati
COSA RITORNA? Un valore. Qualsiasi tipo di dato è valido, anche oggetti complessi. COSA FA? Combina tutti gli elementi di un array in un unico valore, tramite la logica dettata dalla callback function.
1
1
const numeri = [1, 2, 3];
2
const somma = numeri . reduce ( (acc, numero) => {
return acc + numero;
3
4
}, 0 ) ;
5
console . log ( somma ) ; / / Output: 6
6
/ / Ritorna: un singolo valore
WAIT ...
WHAT?
quickmeme.com
A differenza degli altri Array Methods, riceve due argomenti:
O La prima iterazione è uguale a valoreIniziale.
1
array . reduce ( (acc, curr, i, arr) => {
2
return acc + curr;
3
}, valoreIniziale) ;
Ogni Array Method è replicabile usando il . reduce ( ), perché permette di generare qualsiasi tipo di valore partendo da un array (anche un altro array).
1 const numeri = [1, 2, 3, 4];
1
// .map()
2
const doppi = numeri . reduce ( (acc, curr) => {
3
return [ ... acc, curr * 2] ;
4
}, [ ] ) ;
1
//.filter ( )
2
const doppi = numeri . reduce ( (acc, curr) => {
3
if (curr % 2 === 0) {
4
return [ ... acc, curr] ;
5
}else{
6
return acc;
7
}
8
}, []);
.reduce()