-
Notifications
You must be signed in to change notification settings - Fork 6
/
platzimath.js
90 lines (73 loc) · 2.56 KB
/
platzimath.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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
// class PlatziMath {
// static esPar() {}
// static esImpar() {}
// static calcularMedian() {}
// }
const PlatziMath = {};
PlatziMath.esPar = function esPar(lista) {
return !(lista.length % 2);
}
PlatziMath.esImpar = function esImpar(lista) {
return lista.length % 2;
}
PlatziMath.calcularModa = function calcularModa(lista) {
const listaCount = {};
for (let i = 0; i < lista.length; i++) {
const elemento = lista[i];
if (listaCount[elemento]) {
listaCount[elemento] += 1;
} else {
listaCount[elemento] = 1;
}
}
const listaArray = Object.entries(listaCount);
const listaOrdenada = ordenarListaBidimensional(listaArray, 1)
const listaMaxNumber = listaOrdenada[listaOrdenada.length - 1];
const moda = listaMaxNumber[0];
// console.log({listaCount, listaArray, listaOrdenada, listaMaxNumber});
// console.log('La moda es: ' + listaMaxNumber[0]);
return moda;
}
PlatziMath.calcularMediana = function calcularMediana(listaDesordenada) {
const lista = PlatziMath.ordenarLista(listaDesordenada);
const listaEsPar = PlatziMath.esPar(lista);
if (listaEsPar) {
const indexMitad1ListaPar = (lista.length / 2) - 1;
const indexMitad2ListaPar = lista.length / 2;
const listaMitades = [];
listaMitades.push(lista[indexMitad1ListaPar]);
listaMitades.push(lista[indexMitad2ListaPar]);
const medianaListaPar = PlatziMath.calcularPromedio(listaMitades);
return medianaListaPar;
} else {
const indexMitadListaImpar = Math.floor(lista.length / 2);
const medianaListaImpar = lista[indexMitadListaImpar];
console.log(indexMitadListaImpar);
console.log(medianaListaImpar);
return medianaListaImpar;
}
}
PlatziMath.calcularPromedio = function calcularPromedio(lista) {
function sumarTodosElementos(valorAcumulado, nuevoValor) {
return valorAcumulado + nuevoValor;
}
const sumaLista = lista.reduce(sumarTodosElementos);
const promedio = sumaLista / lista.length;
// console.log(promedio);
return promedio;
}
PlatziMath.ordenarLista = function ordenarLista(listaDesordenada) {
function ordenarListaSort(valorAcumulado, nuevoValor) {
return valorAcumulado - nuevoValor;
}
// const lista = listaDesordenada.sort((a,b) => a-b);
const lista = listaDesordenada.sort(ordenarListaSort);
return lista;
}
PlatziMath.ordenarListaBidimensional = function ordenarListaBidimensional(listaDesordenada, i) {
function ordenarListaSort(valorAcumulado, nuevoValor) {
return valorAcumulado[i] - nuevoValor[i];
}
const lista = listaDesordenada.sort(ordenarListaSort);
return lista;
}