-
Notifications
You must be signed in to change notification settings - Fork 0
/
score.js
executable file
·53 lines (41 loc) · 1.54 KB
/
score.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
"use strict";
// esercizio LEZIONE 3
// definisci un array con tutti i voti degli esemi sostenuti
// elimina i due voti più bassi
// aggiungi due nuovi voti, alla fine, uguali alla media arrotondata dei voti
// stampa entrambi gli array e mostrane la media in entrambi i casi
// definizione array voti esami
const score = [19, 22, 30, 27, 24, 18, 26, 29];
//definizione dell'array migliorato - copio l'array di partenza
const betterScore = [...score];
/*
// soluzione 1 - soluzione dei minimi
// il metodo Math.min() non accetta un array ma dei valori
// li passiamo con il metodo spread
let minScore = Math.min(...betterScore);
//recupera l'indice di posizione del valore min
let index = betterScore.indexOf(minScore);
//elimino un elemento dall'array
betterScore.splice(index, 1);
// ripeto due volte per eliminare i due voti più bassi - non riassegno con let le variabili già definite: ritornerebbe errore!
minScore = Math.min(...betterScore);
index = betterScore.indexOf(minScore);
betterScore.splice(index, 1);
*/
// soluzione 2 - soluzione con ordinamento dei voti
// la sort ordina di default in modo alfabetico
// ordinamento numerico richiede una funzione
// score.sort((a, b) => a - b);
betterScore.sort((a, b) => a - b);
betterScore.shift();
betterScore.shift();
let avg = 0;
for (let el of betterScore) {
avg += el;
}
avg /= betterScore.length;
avg = Math.round(avg);
console.log(
`I voti iniziali sono: ${score}
I voti migliorati sono: ${betterScore}, la media voti migliorata è: ${avg}`
);