-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathanalisis.js
executable file
·62 lines (50 loc) · 1.35 KB
/
analisis.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
54
55
56
57
58
59
60
61
// Helpers
function esPar(numerito) {
return (numerito % 2 === 0);
}
function calcularMediaAritmetica(lista) {
const sumaLista = lista.reduce(
function (valorAcumulado = 0, nuevoElemento) {
return valorAcumulado + nuevoElemento;
}
);
const promedioLista = sumaLista / lista.length;
return promedioLista;
}
// Calculadora de mediana
function medianaSalarios(lista) {
const mitad = parseInt(lista.length / 2);
if (esPar(lista.length)) {
const personitaMitad1 = lista[mitad - 1];
const personitaMitad2 = lista[mitad];
const mediana = calcularMediaAritmetica([personitaMitad1, personitaMitad2]);
return mediana;
} else {
const personitaMitad = lista[mitad];
return personitaMitad;
}
}
// Mediana General
const salariosCol = colombia.map(
function (personita) {
return personita.salary;
}
);
const salariosColSorted = salariosCol.sort(
function (salaryA, salaryB) {
return salaryA - salaryB;
}
);
const medianaGeneralCol = medianaSalarios(salariosColSorted);
// Mediana del top 10%
const spliceStart = (salariosColSorted.length * 90) / 100;
const spliceCount = salariosColSorted.length - spliceStart;
const salariosColTop10 = salariosColSorted.splice(
spliceStart,
spliceCount,
);
const medianaTop10Col = medianaSalarios(salariosColTop10);
console.log({
medianaGeneralCol,
medianaTop10Col,
});