Skip to content

Commit

Permalink
proyeccion por persona
Browse files Browse the repository at this point in the history
  • Loading branch information
juandc committed May 27, 2022
1 parent f03a613 commit 3971d1e
Show file tree
Hide file tree
Showing 4 changed files with 306 additions and 11 deletions.
48 changes: 48 additions & 0 deletions analisis.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
console.log(salarios);

// Análisis personal para Juanita
function encontrarPersona(personaEnBusqueda) {
return salarios.find(persona => persona.name == personaEnBusqueda);

// const persona = salarios.find((persona) => {
// return persona.name == personaEnBusqueda;
// });
// return persona;
}

function medianaPorPersona(nombrePersona) {
const trabajos = encontrarPersona(nombrePersona).trabajos;

const salarios = trabajos.map(function (elemento) {
return elemento.salario;
});

const medianaSalarios = PlatziMath.calcularMediana(salarios);

console.log(medianaSalarios);
return medianaSalarios;
}

function proyeccionPorPersona(nombrePersona) {
const trabajos = encontrarPersona(nombrePersona).trabajos;

let porcentajesCrecimiento = [];

for (let i = 1; i < trabajos.length; i++) {
const salarioActual = trabajos[i].salario;
const salarioPasado = trabajos[i - 1].salario;
const crecimiento = salarioActual - salarioPasado;
const porcentajeCrecimiento = crecimiento / salarioPasado;
porcentajesCrecimiento.push(porcentajeCrecimiento)
}

const medianaPorcentajesCrecimiento = PlatziMath.calcularMediana(porcentajesCrecimiento);

// console.log({porcentajesCrecimiento, medianaPorcentajesCrecimiento});

const ultimoSalario = trabajos[trabajos.length - 1].salario;
const aumento = ultimoSalario * medianaPorcentajesCrecimiento;
const nuevoSalario = ultimoSalario + aumento;

return nuevoSalario;
}
30 changes: 19 additions & 11 deletions platzimath.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,20 @@
function esPar(lista) {
// class PlatziMath {
// static esPar() {}
// static esImpar() {}
// static calcularMedian() {}
// }

const PlatziMath = {};

PlatziMath.esPar = function esPar(lista) {
return !(lista.length % 2);
}
function esImpar(lista) {

PlatziMath.esImpar = function esImpar(lista) {
return lista.length % 2;
}

function calcularModa(lista) {
PlatziMath.calcularModa = function calcularModa(lista) {
const listaCount = {};

for (let i = 0; i < lista.length; i++) {
Expand All @@ -27,9 +36,9 @@ function calcularModa(lista) {
return moda;
}

function calcularMediana(listaDesordenada) {
const lista = ordenarLista(listaDesordenada);
const listaEsPar = esPar(lista);
PlatziMath.calcularMediana = function calcularMediana(listaDesordenada) {
const lista = PlatziMath.ordenarLista(listaDesordenada);
const listaEsPar = PlatziMath.esPar(lista);

if (listaEsPar) {
const indexMitad1ListaPar = (lista.length / 2) - 1;
Expand All @@ -38,7 +47,7 @@ function calcularMediana(listaDesordenada) {
listaMitades.push(lista[indexMitad1ListaPar]);
listaMitades.push(lista[indexMitad2ListaPar]);

const medianaListaPar = calcularPromedio(listaMitades);
const medianaListaPar = PlatziMath.calcularPromedio(listaMitades);
return medianaListaPar;
} else {
const indexMitadListaImpar = Math.floor(lista.length / 2);
Expand All @@ -49,7 +58,7 @@ function calcularMediana(listaDesordenada) {
}
}

function calcularPromedio(lista) {
PlatziMath.calcularPromedio = function calcularPromedio(lista) {
function sumarTodosElementos(valorAcumulado, nuevoValor) {
return valorAcumulado + nuevoValor;
}
Expand All @@ -60,7 +69,7 @@ function calcularPromedio(lista) {
return promedio;
}

function ordenarLista(listaDesordenada) {
PlatziMath.ordenarLista = function ordenarLista(listaDesordenada) {
function ordenarListaSort(valorAcumulado, nuevoValor) {
return valorAcumulado - nuevoValor;
}
Expand All @@ -71,8 +80,7 @@ function ordenarLista(listaDesordenada) {
return lista;
}

// [ [0,1], [0,1], [0,1] ]
function ordenarListaBidimensional(listaDesordenada, i) {
PlatziMath.ordenarListaBidimensional = function ordenarListaBidimensional(listaDesordenada, i) {
function ordenarListaSort(valorAcumulado, nuevoValor) {
return valorAcumulado[i] - nuevoValor[i];
}
Expand Down
19 changes: 19 additions & 0 deletions salarios.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Taller de Matemáticas con JavaScript</title>
</head>
<body>
<h1>Taller de Matemáticas con JavaScript</h1>
<p>
Por favor, abre la consola del inspector de elementos
</p>

<script src="./platzimath.js"></script>
<script src="./salarios.js"></script>
<script src="./analisis.js"></script>
</body>
</html>
220 changes: 220 additions & 0 deletions salarios.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,220 @@
const salarios = [];
salarios.push({
name: 'Juanita',
trabajos: [
{ year: 2018, empresa: 'Freelance', salario: 250, },
{ year: 2019, empresa: 'Freelance', salario: 250, },
{ year: 2020, empresa: 'Industrias Mokepon', salario: 850, },
{ year: 2021, empresa: 'Industrias Mokepon', salario: 1050, },
{ year: 2022, empresa: 'Industrias Mokepon', salario: 1250, },
{ year: 2023, empresa: 'Industrias Mokepon', salario: 1250, },

// { year: 2024, salario: 1250, },
],
});
salarios.push({
name: 'Alex',
trabajos: [
{ year: 2018, empresa: 'Freelance', salario: 450, },
{ year: 2019, empresa: 'Freelance', salario: 550, },
{ year: 2020, empresa: 'Freelance', salario: 400, },
{ year: 2021, empresa: 'Industrias Mokepon', salario: 1050, },
{ year: 2022, empresa: 'Industrias Mokepon', salario: 1250, },
{ year: 2023, empresa: 'Industrias Mokepon', salario: 1250, },
],
});
salarios.push({
name: 'Nath',
trabajos: [
{ year: 2018, empresa: 'Freelance', salario: 600, },
{ year: 2019, empresa: 'Freelance', salario: 625, },
{ year: 2020, empresa: 'Freelance', salario: 575, },
{ year: 2021, empresa: 'MarketerosCOL', salario: 1000, },
{ year: 2022, empresa: 'MarketerosCOL', salario: 1000, },
{ year: 2023, empresa: 'MarketerosCOL', salario: 1100, },
],
});
salarios.push({
name: 'Julia',
trabajos: [
{ year: 2018, empresa: 'MarketerosCOL', salario: 1000, },
{ year: 2019, empresa: 'MarketerosCOL', salario: 2000, },
{ year: 2020, empresa: 'MarketerosCOL', salario: 2000, },
{ year: 2021, empresa: 'MarketerosCOL', salario: 2000, },
{ year: 2022, empresa: 'MarketerosCOL', salario: 2000, },
{ year: 2023, empresa: 'MarketerosCOL', salario: 2000, },
],
});
salarios.push({
name: 'Jonatan',
trabajos: [
{ year: 2019, empresa: 'MarketerosCOL', salario: 1000, },
{ year: 2020, empresa: 'MarketerosCOL', salario: 1000, },
{ year: 2021, empresa: 'MarketerosCOL', salario: 800, },
{ year: 2022, empresa: 'MarketerosCOL', salario: 900, },
{ year: 2023, empresa: 'MarketerosCOL', salario: 1000, },
],
});
salarios.push({
name: 'Armando',
trabajos: [
{ year: 2018, empresa: 'Freelance', salario: 750, },
{ year: 2019, empresa: 'Freelance', salario: 750, },
{ year: 2020, empresa: 'Freelance', salario: 750, },
{ year: 2021, empresa: 'Freelance', salario: 850, },
{ year: 2022, empresa: 'Freelance', salario: 850, },
{ year: 2023, empresa: 'Freelance', salario: 850, },
],
});
salarios.push({
name: 'Dilan',
trabajos: [
{ year: 2018, empresa: 'Freelance', salario: 500, },
{ year: 2019, empresa: 'Freelance', salario: 500, },
{ year: 2020, empresa: 'Freelance', salario: 600, },
{ year: 2021, empresa: 'Mokepon', salario: 1100, },
{ year: 2022, empresa: 'Mokepon', salario: 1100, },
{ year: 2023, empresa: 'Mokepon', salario: 1100, },
],
});
salarios.push({
name: 'Zamir',
trabajos: [
{ year: 2018, empresa: 'Freelance', salario: 400, },
{ year: 2019, empresa: 'Freelance', salario: 500, },
{ year: 2020, empresa: 'Freelance', salario: 500, },
{ year: 2021, empresa: 'Mokepon', salario: 1100, },
{ year: 2022, empresa: 'Mokepon', salario: 1100, },
{ year: 2023, empresa: 'Mokepon', salario: 1200, },
],
});
salarios.push({
name: 'Daniela',
trabajos: [
{ year: 2018, empresa: 'Freelance', salario: 500, },
{ year: 2019, empresa: 'Freelance', salario: 500, },
{ year: 2020, empresa: 'Freelance', salario: 500, },
{ year: 2021, empresa: 'Freelance', salario: 550, },
{ year: 2022, empresa: 'Freelance', salario: 550, },
{ year: 2023, empresa: 'MarketerosCOL', salario: 850, },
],
});
salarios.push({
name: 'Daniel',
trabajos: [
{ year: 2020, empresa: 'Freelance', salario: 150, },
{ year: 2021, empresa: 'Freelance', salario: 450, },
{ year: 2022, empresa: 'Freelance', salario: 550, },
{ year: 2023, empresa: 'Freelance', salario: 650, },
],
});
salarios.push({
name: 'Rigoberto',
trabajos: [
{ year: 2018, empresa: 'MarketerosCOL', salario: 700, },
{ year: 2019, empresa: 'MarketerosCOL', salario: 700, },
{ year: 2020, empresa: 'MarketerosCOL', salario: 700, },
{ year: 2021, empresa: 'MarketerosCOL', salario: 750, },
{ year: 2022, empresa: 'MarketerosCOL', salario: 750, },
{ year: 2023, empresa: 'MarketerosCOL', salario: 750, },
],
});
salarios.push({
name: 'Alicia',
trabajos: [
{ year: 2018, empresa: 'Inversionify', salario: 300, },
{ year: 2019, empresa: 'Inversionify', salario: 1700, },
{ year: 2020, empresa: 'Inversionify', salario: 2700, },
{ year: 2021, empresa: 'Inversionify', salario: 3750, },
{ year: 2022, empresa: 'Freelance', salario: 1550, },
{ year: 2023, empresa: 'Freelance', salario: 350, },
],
});
salarios.push({
name: 'Teodoro',
trabajos: [
{ year: 2018, empresa: 'Freelance', salario: 600, },
{ year: 2019, empresa: 'Freelance', salario: 700, },
{ year: 2020, empresa: 'Inversionify', salario: 1700, },
{ year: 2021, empresa: 'Inversionify', salario: 1750, },
{ year: 2022, empresa: 'Freelance', salario: 800, },
{ year: 2023, empresa: 'Freelance', salario: 850, },
],
});
salarios.push({
name: 'Bruce',
trabajos: [
{ year: 2018, empresa: 'Wayne Enterprises', salario: 4600, },
{ year: 2019, empresa: 'Wayne Enterprises', salario: 4700, },
{ year: 2020, empresa: 'Wayne Enterprises', salario: 3700, },
{ year: 2021, empresa: 'Wayne Enterprises', salario: 4150, },
{ year: 2022, empresa: 'Wayne Enterprises', salario: 4400, },
{ year: 2023, empresa: 'Wayne Enterprises', salario: 3850, },
],
});
salarios.push({
name: 'Alfred',
trabajos: [
{ year: 2018, empresa: 'Wayne Enterprises', salario: 2000, },
{ year: 2019, empresa: 'Wayne Enterprises', salario: 2000, },
{ year: 2020, empresa: 'Wayne Enterprises', salario: 1500, },
{ year: 2021, empresa: 'Wayne Enterprises', salario: 1500, },
{ year: 2022, empresa: 'Wayne Enterprises', salario: 2000, },
{ year: 2023, empresa: 'Wayne Enterprises', salario: 1500, },
],
});
salarios.push({
name: 'Clark Kent',
trabajos: [
{ year: 2018, empresa: 'Daily Planet', salario: 1000, },
{ year: 2019, empresa: 'Daily Planet', salario: 1500, },
{ year: 2020, empresa: 'Daily Planet', salario: 1000, },
{ year: 2021, empresa: 'Daily Planet', salario: 1500, },
{ year: 2022, empresa: 'Daily Planet', salario: 2000, },
{ year: 2023, empresa: 'Daily Planet', salario: 1500, },
],
});
salarios.push({
name: 'Lois Lane',
trabajos: [
{ year: 2018, empresa: 'Daily Planet', salario: 2000, },
{ year: 2019, empresa: 'Daily Planet', salario: 2500, },
{ year: 2020, empresa: 'Daily Planet', salario: 2000, },
{ year: 2021, empresa: 'Daily Planet', salario: 2500, },
{ year: 2022, empresa: 'Daily Planet', salario: 2500, },
{ year: 2023, empresa: 'Daily Planet', salario: 2500, },
],
});
salarios.push({
name: 'Jimmy Olsen',
trabajos: [
{ year: 2018, empresa: 'Daily Planet', salario: 1500, },
{ year: 2019, empresa: 'Daily Planet', salario: 2000, },
{ year: 2020, empresa: 'Daily Planet', salario: 2000, },
{ year: 2021, empresa: 'Daily Planet', salario: 2500, },
{ year: 2022, empresa: 'Daily Planet', salario: 2500, },
{ year: 2023, empresa: 'Daily Planet', salario: 1500, },
],
});
salarios.push({
name: 'Perry White',
trabajos: [
{ year: 2018, empresa: 'Daily Planet', salario: 3500, },
{ year: 2019, empresa: 'Daily Planet', salario: 3700, },
{ year: 2020, empresa: 'Daily Planet', salario: 3800, },
{ year: 2021, empresa: 'Daily Planet', salario: 4000, },
{ year: 2022, empresa: 'Daily Planet', salario: 4050, },
{ year: 2023, empresa: 'Daily Planet', salario: 4050, },
],
});
salarios.push({
name: 'Lex Luthor',
trabajos: [
{ year: 2018, empresa: 'LexCorp', salario: 5000, },
{ year: 2019, empresa: 'LexCorp', salario: 5300, },
{ year: 2020, empresa: 'LexCorp', salario: 4000, },
{ year: 2021, empresa: 'LexCorp', salario: 3000, },
{ year: 2022, empresa: 'LexCorp', salario: 3500, },
{ year: 2023, empresa: 'LexCorp', salario: 3050, },
],
});

0 comments on commit 3971d1e

Please sign in to comment.