CursosEmpresasBlogLiveConfPrecios

Análisis salarial con JavaScript

Clase 23 de 30 • Taller Práctico de JavaScript: Matemáticas y Estadística Básica

Clase anteriorSiguiente clase
    Gustavo Liendo

    Gustavo Liendo

    student•
    hace 3 años

    Una vez en el enlace me aparecía un poco desorganizada la información de los salarios, acá se las dejo para copiar y pegar.

    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,}, ], }); 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,}, ], });
      Marcia Hernández

      Marcia Hernández

      student•
      hace 3 años

      Buenísimo, gracias!

      José Miguel Flórez Vega

      José Miguel Flórez Vega

      student•
      hace 3 años

      muy bueno bro, ojala no colocaran la informacion tan desorganizada, Platzi debe mejorar muchas cosas jejeje

    Josue Cerron Tuesta

    Josue Cerron Tuesta

    student•
    hace 3 años

    Esto es lo que logré hasta ahora sobre la proyección salarial. Me basé en las siguientes lecturas:

    • Cálculo de aumento de salario
    • Media Geométrica - Usos
    const salaryProjection = persona => { //Array de los porcentajes de incremento let incrementPercentage = []; const salarios_ = salarios .find(item => item.name === persona).trabajos .map(item => item.salario); //Sacando el procentaje de incremento de salarios const increment = salarios_.forEach((item, index, arr) => { if (index === (arr.length - 1)) { return; } //No lo he multiplicado por 100 porque después tendré que dividirlo por 10 de nuevo. let increment = ((arr[index + 1] - arr[index]) / arr[index]); incrementPercentage.push(increment + 1); }); //Aplicando la media geometrica de los incrementos a 2 decimales. const mg = PlatziMath.mediaGeo(incrementPercentage).toFixed(2); //Obteniendo el porcentaje. Es decir: 1.45 => 45% fue el incremento. const percent = (mg - 1).toFixed(2); //Calculamos su proyeccion salarial con el porcentaje obtenido. const projSalarial = Math.trunc(salarios_[salarios_.length - 1] * (1 + (percent))); return projSalarial; } console.log(salaryProjection('Juanita')); //Expected output => 12975
      Antonio Mora

      Antonio Mora

      student•
      hace 3 años

      Hola, Josué.

      Estaba revisando tu código y me di cuenta de que tu variable

      const percent = (mg - 1).toFixed(2);

      Es de tipo string, por eso tu proyección salarial te sale por 12,975.00, siendo lo correcto 1,725.00 que equivale a un 38% de aumento.

    Antonio Mora

    Antonio Mora

    student•
    hace 3 años

    Hola a todos. Realice de la forma siguiente una función para obtener la proyección salarial para el próximo año.

    Captura de pantalla de 2022-08-17 22-22-21.png
    Resultado:

    proyeccionSalarial('Juanita'); El procentaje de incremento es: 0.38 Tu nuevo salario seria de: 1725
    Juan David Reyes

    Juan David Reyes

    student•
    hace 3 años

    Les recomiendo usar

    console.table(// code)

    para que se vean mejor impresos los objetos xd

    Leopoldo Martinez

    Leopoldo Martinez

    student•
    hace 3 años

    es mi idea o al profe le gusta mucho DC? 🤔

      Juan Castro

      Juan Castro

      teacher•
      hace 3 años

      SOY BATMAN

      Leopoldo Martinez

      Leopoldo Martinez

      student•
      hace 3 años

      xD no, I'm Batman

    Orlando Rodriguez

    Orlando Rodriguez

    student•
    hace 3 años

    Para calcular la proyección, se me ocurrió calcularlo con una media geometrica, tal vez no sea lo mas optimo para una proyeccion, pero me gusto el reto porque tuve que aplicar una raíz con un indice de 4 y aplicar varios condicionales para cumplir las reglas de esta media en especifico, tambien use reduce, para multiplicar todos los elementos de un array. Media Geometría :

    > La media geométrica se calcula como un producto conjunto. Es decir, que todos los valores se multiplican entre sí. De modo que si uno de ellos fuera cero, el producto total sería cero. Por ello, debemos siempre tener en cuenta que a la hora de calcular la media geométrica necesitamos números que sean únicamente positivos

    Ahora todo eso en js

    // Haremos la proyeccion salarial usando una media geometrica // Necesitamos el porcentaje de aumento de cada año, para calcular la media geometrica // %aumento = (salarioNuevo - salarioViejo) / salarioViejo + 1 const aumentos = []; function calcularMediaGeometrica (person) { const array = listaSalarios(person); for (i=1; i<array.length; i++){ let aumentoPorAnnio = (array[i] - array[i-1]) / array[i-1]; // condicional para cumplir reglas de la Media Geometrica (Si hay un aumento de 0% no sumarle el +1) if (aumentoPorAnnio === 0){ aumentoPorAnnio = 0; } else { aumentoPorAnnio++; } aumentos.push(aumentoPorAnnio.toFixed(2)); } console.log(aumentos); let multiplicarAumentos = aumentos.reduce((valorAcumulado, valorNuevo) => valorAcumulado * valorNuevo); let indiceRaiz = 1 / aumentos.length; let mediaGeometrica = multiplicarAumentos ** indiceRaiz; let proyeccion = mediaGeometrica * array[array.length-1]; console.log(mediaGeometrica.toFixed(2)); if (mediaGeometrica === 0) { console.log(`${person} para el año que viene proyectamos que no tendras un aumento salarial.`); } else { console.log(`${person} para el año que viene proyectamos que tendras un salario de $${proyeccion.toFixed(0)}.`); } return mediaGeometrica.toFixed(2); } calcularMediaGeometrica("Daniel");
    Efrén Ruíz Rubio

    Efrén Ruíz Rubio

    student•
    hace 3 años

    Yo decidí sacar la diferencia entre el salario más grande menos el salario anterior al mismo, para evitar los salarios repetidos utilicé el objeto Set. Referencia

    const proyectionSalaryPerPerson = (personName) => { const arr = findPersonByName(personName).works.map((el) => el.salary); // El objeto Set solo almacena valores únicos const uniqueSalaries = [...new Set(arr)]; const arrLength = uniqueSalaries.length; /* Para calcular la proyección, primero se evalúa con un ternario si existe más de un elemento en el arreglo, si sí, se resta tanto el último como el penúltimo elemento, si no, simplemente se calcula el 10% del único elemento y se suma con el mismo. */ const proyection = arrLength > 1 ? uniqueSalaries[arrLength - 1] - uniqueSalaries[arrLength - 2] : uniqueSalaries * 0.1; return uniqueSalaries[arrLength - 1] + proyection; };
    Raúl Adolfo Sánchez Rodríguez

    Raúl Adolfo Sánchez Rodríguez

    student•
    hace 3 años

    Análisis del array SALARIOS

    setup1.png
    setup2.png
    Mateo Arias Correa

    Mateo Arias Correa

    student•
    hace 3 años

    Este es mi aporte

    function findPerson(findPerson){ return salarios.find((person)=>person.name==findPerson); } function incrementSalary(salary){ const incrementSlary=salary.sort((a,b)=>a-b); let salaryMax= incrementSlary[incrementSlary.length-1]; let salaryMin=incrementSlary[0]; const percentageIncrement=(salaryMax-salaryMin)/(salaryMin*100); const averageSalary= Statistics.median(salary); const perspectiveSalary=averageSalary+(averageSalary*percentageIncrement) console.log('El incremento del salario es del', percentageIncrement*100,'% y el salario para el próximo año sería de ',perspectiveSalary); } function salaryPerson(person){ const works= findPerson(person).trabajos; const salary= works.map((item)=>item.salario); Statistics.median(salary); Statistics.mode(salary); incrementSalary(salary); }
    Ivan de jesus Romero leal

    Ivan de jesus Romero leal

    student•
    hace 3 años

    Mi humilde solucion :)

    Cree un nuevo array y la recorri con un for, por cada elemento en en salario, lo agarraba y lo mete en mi nuevo array que declare

    function medianaPorPersona(nombrePersona){ const trabajos = encontrarPersona(nombrePersona).trabajos let salarioArr = [] for(let i = 0; i < trabajos.length; i++){ salarioArr.push(trabajos[i].salario) } console.log(trabajos) console.log(salarioArr) console.log(PlatziMath.calcularMediana(salarioArr)) }
    Hector Maluy Fernandez

    Hector Maluy Fernandez

    student•
    hace 3 años

    Al invocar un método de un objeto desde otro método, ¿Estaría bien hacerlo con this.nombreMetodo()?

      Luis GR

      Luis GR

      student•
      hace 3 años

      Claro!!

      Kevin Fiorentino

      Kevin Fiorentino

      student•
      hace 3 años

      Es correcto, siempre que te encuentres dentro de una clase, deberás hacer referencia a otros métodos o propiedades con this.

    Kelvin Ortiz

    Kelvin Ortiz

    student•
    hace 3 años

    antes de entrar a esta clase me puse a jugar con el código y me di cuenta del undefind por la funciones en platziMath. casi me arranco los pelos pero pude resolver el error que ahora explicas.

    Axel Enrique Galeed Gutierrez

    Axel Enrique Galeed Gutierrez

    student•
    hace 3 años

    Les comparto la lista de salarios pero con IDs incorporados. :D

    const SALARIES = []; SALARIES.push({ name : 'Juanita', id : 1, works : [ { year: 2018, company: 'Freelance', salary: 250, }, { year: 2019, company: 'Freelance', salary: 250, }, { year: 2020, company: 'Industrias Mokepon', salary: 850, }, { year: 2021, company: 'Industrias Mokepon', salary: 1050, }, { year: 2022, company: 'Industrias Mokepon', salary: 1250, }, { year: 2023, company: 'Industrias Mokepon', salary: 1250, }, ], }); SALARIES.push({ name : 'Alex', id : 2, works : [ { year: 2018, company: 'Freelance', salary: 450, }, { year: 2019, company: 'Freelance', salary: 550, }, { year: 2020, company: 'Freelance', salary: 400, }, { year: 2021, company: 'Industrias Mokepon', salary: 1050, }, { year: 2022, company: 'Industrias Mokepon', salary: 1250, }, { year: 2023, company: 'Industrias Mokepon', salary: 1250, }, ], }); SALARIES.push({ name : 'Nath', id : 3, works : [ { year: 2018, company: 'Freelance', salary: 600, }, { year: 2019, company: 'Freelance', salary: 625, }, { year: 2020, company: 'Freelance', salary: 575, }, { year: 2021, company: 'MarketerosCOL', salary: 1000, }, { year: 2022, company: 'MarketerosCOL', salary: 1000, }, { year: 2023, company: 'MarketerosCOL', salary: 1100, }, ], }); SALARIES.push({ name : 'Julia', id : 4, works : [ { year: 2018, company: 'MarketerosCOL', salary: 1000, }, { year: 2019, company: 'MarketerosCOL', salary: 2000, }, { year: 2020, company: 'MarketerosCOL', salary: 2000, }, { year: 2021, company: 'MarketerosCOL', salary: 2000, }, { year: 2022, company: 'MarketerosCOL', salary: 2000, }, { year: 2023, company: 'MarketerosCOL', salary: 2000, }, ], }); SALARIES.push({ name : 'Jonatan', id : 5, works : [ { year: 2019, company: 'MarketerosCOL', salary: 1000, }, { year: 2020, company: 'MarketerosCOL', salary: 1000, }, { year: 2021, company: 'MarketerosCOL', salary: 800, }, { year: 2022, company: 'MarketerosCOL', salary: 900, }, { year: 2023, company: 'MarketerosCOL', salary: 1000, }, ], }); SALARIES.push({ name : 'Armando', id : 6, works : [ { year: 2018, company: 'Freelance', salary: 750, }, { year: 2019, company: 'Freelance', salary: 750, }, { year: 2020, company: 'Freelance', salary: 750, }, { year: 2021, company: 'Freelance', salary: 850, }, { year: 2022, company: 'Freelance', salary: 850, }, { year: 2023, company: 'Freelance', salary: 850, }, ], }); SALARIES.push({ name : 'Dilan', id : 7, works : [ { year: 2018, company: 'Freelance', salary: 500, }, { year: 2019, company: 'Freelance', salary: 500, }, { year: 2020, company: 'Freelance', salary: 600, }, { year: 2021, company: 'Mokepon', salary: 1100, }, { year: 2022, company: 'Mokepon', salary: 1100, }, { year: 2023, company: 'Mokepon', salary: 1100, }, ], }); SALARIES.push({ name : 'Zamir', id : 8, works : [ { year: 2018, company: 'Freelance', salary: 400, }, { year: 2019, company: 'Freelance', salary: 500, }, { year: 2020, company: 'Freelance', salary: 500, }, { year: 2021, company: 'Mokepon', salary: 1100, }, { year: 2022, company: 'Mokepon', salary: 1100, }, { year: 2023, company: 'Mokepon', salary: 1200, }, ], }); SALARIES.push({ name : 'Daniela', id : 9, works : [ { year: 2018, company: 'Freelance', salary: 500, }, { year: 2019, company: 'Freelance', salary: 500, }, { year: 2020, company: 'Freelance', salary: 500, }, { year: 2021, company: 'Freelance', salary: 550, }, { year: 2022, company: 'Freelance', salary: 550, }, { year: 2023, company: 'MarketerosCOL', salary: 850, }, ], }); SALARIES.push({ name : 'Daniel', id : 10, works : [ { year: 2020, company: 'Freelance', salary: 150, }, { year: 2021, company: 'Freelance', salary: 450, }, { year: 2022, company: 'Freelance', salary: 550, }, { year: 2023, company: 'Freelance', salary: 650, }, ], }); SALARIES.push({ name : 'Rigoberto', id : 11, works : [ { year: 2018, company: 'MarketerosCOL', salary: 700, }, { year: 2019, company: 'MarketerosCOL', salary: 700, }, { year: 2020, company: 'MarketerosCOL', salary: 700, }, { year: 2021, company: 'MarketerosCOL', salary: 750, }, { year: 2022, company: 'MarketerosCOL', salary: 750, }, { year: 2023, company: 'MarketerosCOL', salary: 750, }, ], }); SALARIES.push({ name : 'Alicia', id : 12, works : [ { year: 2018, company: 'Inversionify', salary: 300, }, { year: 2019, company: 'Inversionify', salary: 1700, }, { year: 2020, company: 'Inversionify', salary: 2700, }, { year: 2021, company: 'Inversionify', salary: 3750, }, { year: 2022, company: 'Freelance', salary: 1550, }, { year: 2023, company: 'Freelance', salary: 350, }, ], }); SALARIES.push({ name : 'Teodoro', id : 13, works : [ { year: 2018, company: 'Freelance', salary: 600, }, { year: 2019, company: 'Freelance', salary: 700, }, { year: 2020, company: 'Inversionify', salary: 1700, }, { year: 2021, company: 'Inversionify', salary: 1750, }, { year: 2022, company: 'Freelance', salary: 800, }, { year: 2023, company: 'Freelance', salary: 850, }, ], }); SALARIES.push({ name : 'Bruce', id : 14, works : [ { year: 2018, company: 'Wayne Enterprises', salary: 4600, }, { year: 2019, company: 'Wayne Enterprises', salary: 4700, }, { year: 2020, company: 'Wayne Enterprises', salary: 3700, }, { year: 2021, company: 'Wayne Enterprises', salary: 4150, }, { year: 2022, company: 'Wayne Enterprises', salary: 4400, }, { year: 2023, company: 'Wayne Enterprises', salary: 3850, }, ], }); SALARIES.push({ name : 'Alfred', id : 15, works : [ { year: 2018, company: 'Wayne Enterprises', salary: 2000, }, { year: 2019, company: 'Wayne Enterprises', salary: 2000, }, { year: 2020, company: 'Wayne Enterprises', salary: 1500, }, { year: 2021, company: 'Wayne Enterprises', salary: 1500, }, { year: 2022, company: 'Wayne Enterprises', salary: 2000, }, { year: 2023, company: 'Wayne Enterprises', salary: 1500, }, ], }); SALARIES.push({ name : 'Clark Kent', id : 16, works : [ { year: 2018, company: 'Daily Planet', salary: 1000, }, { year: 2019, company: 'Daily Planet', salary: 1500, }, { year: 2020, company: 'Daily Planet', salary: 1000, }, { year: 2021, company: 'Daily Planet', salary: 1500, }, { year: 2022, company: 'Daily Planet', salary: 2000, }, { year: 2023, company: 'Daily Planet', salary: 1500, }, ], }); SALARIES.push({ name : 'Lois Lane', id : 17, works : [ { year: 2018, company: 'Daily Planet', salary: 2000, }, { year: 2019, company: 'Daily Planet', salary: 2500, }, { year: 2020, company: 'Daily Planet', salary: 2000, }, { year: 2021, company: 'Daily Planet', salary: 2500, }, { year: 2022, company: 'Daily Planet', salary: 2500, }, { year: 2023, company: 'Daily Planet', salary: 2500, }, ], }); SALARIES.push({ name : 'Jimmy Olsen', id : 18, works : [ { year: 2018, company: 'Daily Planet', salary: 1500, }, { year: 2019, company: 'Daily Planet', salary: 2000, }, { year: 2020, company: 'Daily Planet', salary: 2000, }, { year: 2021, company: 'Daily Planet', salary: 2500, }, { year: 2022, company: 'Daily Planet', salary: 2500, }, { year: 2023, company: 'Daily Planet', salary: 1500, }, ], }); SALARIES.push({ name : 'Perry White', id : 19, works : [ { year: 2018, company: 'Daily Planet', salary: 3500, }, { year: 2019, company: 'Daily Planet', salary: 3700, }, { year: 2020, company: 'Daily Planet', salary: 3800, }, { year: 2021, company: 'Daily Planet', salary: 4000, }, { year: 2022, company: 'Daily Planet', salary: 4050, }, { year: 2023, company: 'Daily Planet', salary: 4050, }, ], }); SALARIES.push({ name : 'Lex Luthor', id : 20, works : [ { year: 2018, company: 'LexCorp', salary: 5000, }, { year: 2019, company: 'LexCorp', salary: 5300, }, { year: 2020, company: 'LexCorp', salary: 4000, }, { year: 2021, company: 'LexCorp', salary: 3000, }, { year: 2022, company: 'LexCorp', salary: 3500, }, { year: 2023, company: 'LexCorp', salary: 3050, }, ], });
    Raúl Adolfo Sánchez Rodríguez

    Raúl Adolfo Sánchez Rodríguez

    student•
    hace 3 años

    🚩 Paso a paso para calcular la mediana de los salarios de cualquier empleado registrado

    • Paso1️⃣
      MedianaEmpleado1.png
    • Paso2️⃣
      MedianaEmpleado2.png
    • Paso 3️⃣
      MedianaEmpleado3.png
    • Paso 4️⃣
      MedianaEmpleado4.png
    • Paso 5️⃣
      MedianaEmpleado5.png
    • Bonus 💰💰
      MedianaEmpleado6.png
    Juan Antonio Delgadillo Carrillo

    Juan Antonio Delgadillo Carrillo

    student•
    hace 3 años

    como llevan sus practicas , como es que practica de que forma para aprender mas ya que esta clase se me hizo dificil no me salia pero buscando informacion adicional mi error era que no habia echo en return en una linea de codigo,

    me gustaria saber como es que llevan sus practicas de que forma estudian y practican acaso ven las clases muchas veces

      Juan Castro

      Juan Castro

      teacher•
      hace 2 años

      Yo veo las clases 3 veces La primera solo veo La segunda voy haciendo paso a paso lo mismo que el profe Y la tercera vez realmente no veo la clase, sino que trato de replicar el mismo código (o incluso alguna funcionalidad extra) rompiendo todo para ver si realmente entendí lo que trataba de enseñar la clase

    David Silgado

    David Silgado

    student•
    hace 2 años

    Que tal en una pagina :D

    cap.png

    Felipe Moreno

    Felipe Moreno

    student•
    hace 3 años

    Para calcular la proyeccion de un nuevo salario se me ocurrio sacar un promedio de las diferencias entre los salarios de año tras año, se que no es un calculo que se pueda aplicar en la vida real, simplemente se me ocurrio asi de golpe y me puse a escribir codigo saljksjksasd

    function getSalarios(nombre, arraySalarios){ const persona = arraySalarios.find(salario => salario.name == nombre); const salarios_persona = persona.trabajos.map(trabajo => trabajo.salario); return salarios_persona; }; function proyectarSalarios(salarios_persona){ const aumentos_salario = []; salarios_persona.sort((prev,next) => { aumentos_salario.push(prev - next); }); const promedio_aumento = PlatziMath.calcular_promedio(aumentos_salario); const nuevo_salario = salarios_persona[salarios_persona.length - 1] + promedio_aumento; return {aumento: promedio_aumento, nuevo_salario: nuevo_salario}; } const proyeccion = proyectarSalarios(getSalarios('Alex', salarios)); console.log(proyeccion);
    Joserph Camacho

    Joserph Camacho

    student•
    hace 3 años

    Yo resolví este reto mediante una formula que compartio un compañero, la cuál es esta:

    Para saber el porcentaje de aumento:

    Screenshot_45.png
    Para saberel proximo aumento:
    Screenshot_46.png

    Y aqui está resuleto con estas formúlas con código JS.

    Screenshot_48.png

    Output:

    Screenshot_47.png
    Lautaro Emanuel

    Lautaro Emanuel

    student•
    hace 3 años

    Hace tiempo no le meto a la matemática así que no se si esta bien la lógica en el calculo pero BUENO, la vida es una. Acá va mi código.

    function calcularPorcentajeDeAumentoAnual(nombrePersona){ const trabajos= encontrarPersona(nombrePersona).trabajos; const salarios= trabajos.map(function(elemento){ return elemento.salario }) // console.log(salarios); const porcentajeDeAumento = ((salarios[salarios.length-1]- salarios[0])/salarios[0] / salarios.length); console.log(porcentajeDeAumento); return porcentajeDeAumento; } function calcularAumentoDeSalario(nombrePersona,cantidadDeAños){ const trabajos= encontrarPersona(nombrePersona).trabajos; const salarios= trabajos.map(function(elemento){ return elemento.salario }) const porcentajeDeAumento= calcularPorcentajeDeAumentoAnual(nombrePersona); const calcularAumentoSueldo = salarios[salarios.length-1]*(1+porcentajeDeAumento)*cantidadDeAños; console.log(calcularAumentoSueldo) }
    Kevin Alexis Rondon Gonzalez

    Kevin Alexis Rondon Gonzalez

    student•
    hace 3 años

    Realice la funcion pero de una forma mas complicada jajaja el .map hace la vida mas easy.

    code.png

      Luis Enrique Chavarría Vázquez

      Luis Enrique Chavarría Vázquez

      student•
      hace 3 años

      Jaja yo también lo hice de esa forma amigo (a base de for), gracias por mencionar el uso de map.

Escuelas

  • Desarrollo Web
  • English Academy
  • Marketing Digital
  • Inteligencia Artificial y Data Science
  • Ciberseguridad
  • Liderazgo y Habilidades Blandas
  • Diseño de Producto y UX
  • Contenido Audiovisual
  • Desarrollo Móvil
  • Diseño Gráfico y Arte Digital
  • Programación
  • Negocios
  • Blockchain y Web3
  • Recursos Humanos
  • Finanzas e Inversiones
  • Startups
  • Cloud Computing y DevOps

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads