CursosEmpresasBlogLiveConfPrecios

Top 10% de salarios

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

Clase anteriorSiguiente clase
    Jose Castillo

    Jose Castillo

    student•
    hace 3 años

    Yo use un .sort en las medianasOrdenadas para ordenar el array de mayor a menor, invirtiendo la función interna del .map con b - a, y así poder usar el index desde la primera posición (0).

    function medianaTop10(){ const listaMediana = salarios.map(persona => medianaPorPersona(persona.name)); const medianasOrdenadas = PlatziMath.ordenarLista(listaMediana).sort((a,b)=> b - a); const limite = listaMediana.length / 10; const top10= medianasOrdenadas.slice(0,limite); const medianaTop10 = PlatziMath.calcularMediana(top10) return medianaTop10; }
      Elizabeth Vega Rosas

      Elizabeth Vega Rosas

      student•
      hace 3 años

      +1 (^-^)

    Raúl Adolfo Sánchez Rodríguez

    Raúl Adolfo Sánchez Rodríguez

    student•
    hace 3 años

    Método slice ( )

    slice.png

    Método splice ( )

    splice.png
    Ayelen Perez Benary

    Ayelen Perez Benary

    student•
    hace 2 años

    Me pareció excepcional este curso. El profe Juan David no me deja de sorprender con sus conocimientos. Soy profe de Matemática y es un placer escucharlo. Felicitaciones por tremendo curso. Me gusto muchísimo!

    Ivan de jesus Romero leal

    Ivan de jesus Romero leal

    student•
    hace 3 años

    Aca saque mi propia mediana del 10% mas rico, esto lo hice antes de ver el video, por lo cual me siento orgulloso :)

    function medianaTop10PerCent(){ const nombres = salarios.map(persona => persona.name) console.log(nombres) const medianaPerHabitante = nombres.map(nombre => medianaPorPersona(nombre) ) const sueldosOrdenados = PlatziMath.ordenarLista(medianaPerHabitante) console.log ({medianaPerHabitante, sueldosOrdenados}) const numeroIntegrantesDiezPercent = Math.ceil(sueldosOrdenados.length / 10) console.log("Integrantes al top10%: " + numeroIntegrantesDiezPercent) let topTenPerCentArray = [] for(let i = 1; i <= numeroIntegrantesDiezPercent ;i++){ let integranteTopTenPercent = sueldosOrdenados[sueldosOrdenados.length - i] topTenPerCentArray.push(integranteTopTenPercent) } console.log(topTenPerCentArray) const medianaTopTenPercent = PlatziMath.calcularMediana(topTenPerCentArray) return medianaTopTenPercent }
    Iván Camilo Jaramillo García

    Iván Camilo Jaramillo García

    student•
    hace 3 años

    todo venia tan bien, y justo esta clase me sale NaN en la mediana general -_-! , no tengo una sola idea de por que ocurre y vengo de que todo salió bien en las clases anteriores, y con lo spaguetti que estan esos archivos no tengo idea de como corregir

      Juan Castro

      Juan Castro

      teacher•
      hace 3 años

      Ivan, compártenos tu código y t ayudamos a revisar qué puede estar causando el error.

      Matias Ezequiel Rivero

      Matias Ezequiel Rivero

      student•
      hace 3 años

      Iván, posiblemente este faltando un return en la función que estas llamando para calcular la mediana. Si no has podido resolverlo, pon el código para intentar darle solución, saludos..

    Orlando Rodriguez

    Orlando Rodriguez

    student•
    hace 3 años

    Usando un ciclo for

    function medianaTop10 (listaSalarios) { const topSalarios = []; const cantidadPersonas = listaSalarios.length * 0.1; for(let i = 1; i <= cantidadPersonas; i++){ topSalarios.push(listaSalarios[listaSalarios.length - i]) } console.log(topSalarios); //Mediana del top 10% de salarios const medianaTop10 = MathCalculos.calcularMediana(topSalarios); console.log(medianaTop10); return medianaTop10; } medianaTop10(medianaListaOrdenada);
      David Fernando Estacio Quiroz

      David Fernando Estacio Quiroz

      student•
      hace 3 años

      Yo hice lo mismo, poner en reversa el for jaja

      Arturo Gomez

      Arturo Gomez

      student•
      hace 2 años

      yo tambien jajaja

    CRISTIAN DARIO AGUDELO PORRAS

    CRISTIAN DARIO AGUDELO PORRAS

    student•
    hace 3 años

    Aqui mi solucion a tomar el top 10 de la lista de medianas.

    let i = medianasOrdenadas.length - 1; const a = i - cantidadTop10; const medianasTop10 = []; for (i; i > a; i-- ){ medianasTop10.push(medianasOrdenadas[i]) }
    JORGE ALEXANDER MÚNERA CANABAL

    JORGE ALEXANDER MÚNERA CANABAL

    student•
    hace 3 años

    Lo que yo hice fue hacer una funcion llamada medianaTopX, para poder ver el porcentaje top que queramos. De igual manera, en la solucion lo que hice fue ordenar mi lista de mayor a menor y extraer hasta la posicion X, dependiendo del porcentaje que hayamos indicado, me pareció mas sencillo. De igual manera podriamos indicar el 100% para ver el valor de la medianaGeneral 😀

    function medianaTopX(porcentaje){ const listaMedianas = salarios.map(persona=>medianaPorPersona(persona.name)); const listaMedianasOrdenada=[...listaMedianas].sort((a,b)=>b-a) const cantidad = Math.round(listaMedianas.length*(porcentaje/100)); const topX = listaMedianasOrdenada.slice(0,cantidad); const medianaTopX = Platzimath.calcularMediana(topX) return medianaTopX; }
    Luis Miguel Rodriguez

    Luis Miguel Rodriguez

    student•
    hace 3 años

    El método .slice() es una función integrada de JavaScript que se utiliza para extraer una porción de una matriz (array) o una cadena (string). Este método no modifica la matriz o cadena original, sino que devuelve una nueva matriz o cadena que contiene los elementos seleccionados.

    La sintaxis básica del método .slice() es la siguiente:

    array.slice(inicio, fin

    Donde "array" es la matriz original, "inicio" es el índice del elemento donde comenzar a extraer (inclusive), y "fin" es el índice del elemento donde detener la extracción (no inclusivo). Si no se especifica el parámetro "fin", se extraen todos los elementos desde el índice "inicio" hasta el final de la matriz.

    Por ejemplo, si tenemos la siguiente matriz:

    const frutas = ['manzana', 'naranja', 'pera', 'uva', 'mango'];

    Podemos utilizar el método .slice() para extraer una porción de la matriz, como en los siguientes ejemplos:

    const frutas1 = frutas.slice(1, 3); // ['naranja', 'pera'] const frutas2 = frutas.slice(2); // ['pera', 'uva', 'mango']

    También podemos utilizar el método .slice() para extraer una porción de una cadena, como en el siguiente ejemplo:

    const nombre = 'Juan Perez'; const apellido = nombre.slice(5); // 'Perez'

    En este ejemplo, la función .slice() extrae todos los caracteres de la cadena "nombre" desde el índice 5 hasta el final, lo que resulta en la cadena "Perez".

    Enrique Carrillo Vásquez

    Enrique Carrillo Vásquez

    student•
    hace 2 años
    const medianaTop10percent = () => { const medianasOrdenadas = salarios .map((persona) => { return medianaPorPersona(persona.name); }) .sort((a, b) => b - a); const top10 = medianasOrdenadas.slice(0, medianasOrdenadas.length / 10); return calculoMath.calculaMediana(top10); };
    Jonathan Meixueiro

    Jonathan Meixueiro

    student•
    hace 3 años

    Yo lo hice con un ciclo while porque me odio :D adentro nada más le puse un shift, para quitarle el primer valor hasta que nomás queden los dos del final.

    const cantidad = listaMedianas.length / 10; const result = medianasOrdenadas; while(result.length > cantidad) { result.shift(); } console.log(result);
    Huilén Solís

    Huilén Solís

    student•
    hace 3 años

    Hace bastantes clases que estoy intentando buscar la solucion yo mismo antes de que el profesor la explique, y da la coincidencia que muchas veces tenemos la misma.

    function medianTop10(){ const medianPerPerson = salaryList.map(person => calculateMedianOfPerson(person.name)); const orderMedians = medianPerPerson.sort((a, b) => b - a) const tenPercent = Math.floor(orderMedians.length * 0.1); return orderMedians.slice(0, tenPercent) }
    Ricardo Alfonso Chavez Vilcapoma

    Ricardo Alfonso Chavez Vilcapoma

    student•
    hace 3 años

    No pude seguir los pasos del profesor en este último módulo, pero haré un proyecto con lo aprendido los anteriores módulos...aquí mi cabecera 😅

    proyecto.PNG
    Joserph Camacho

    Joserph Camacho

    student•
    hace 3 años

    Yo realicé el ejercicio de está manera:

    Screenshot_36.png
    Output:
    Screenshot_35.png

    Yilmar López Ospina

    Yilmar López Ospina

    student•
    hace 3 años

    Yo usé un .sort para reordenar el arreglo de medianas de mayor a menor, después calculé el 10% del total de las medianas y apliqué Math.trunc() para eliminar la parte decimal (esto tendría utilidad si en algún momento cambia la cantidad de personas dentro del arreglo salarios).

    Por último apliqué el método .slice desde la posición 0 hasta el 10% (sin decimales) y calcule de nuevo la mediana.

    function topTenPercentMedian() { const peopleMedians = salarios.map(person => { return medianPerPerson(person.name); }); const sortPeopleMedians = peopleMedians.sort((a, b) => { return b - a; }); const tenPercent = (sortPeopleMedians.length * 10) / 100; const topTen = sortPeopleMedians.slice(0, Math.trunc(tenPercent)); return PlatziMath.calculateMedian(topTen); }
    Daniel Guarín García

    Daniel Guarín García

    student•
    hace 3 años
    function medianaGeneral() { const names = salarios.map((person) => { return person.name; }); const medianaForEachName = names.map((person) => { return personMediana1(person); }); const generalMediana = mediana(medianaForEachName); const medianaOrder = medianaForEachName.sort((a, b) => b - a); const amountTopTen = Math.ceil(medianaOrder.length * 0.1); const topTen = medianaOrder.slice(0, amountTopTen); const topTenMediana = mediana(topTen); return `La mediana general es de $${generalMediana}, la mediana del top 10 $${topTenMediana}`; }
    Kevin Alexis Rondon Gonzalez

    Kevin Alexis Rondon Gonzalez

    student•
    hace 3 años

    sera prudente, crear una calculadora, completa con html y css ??

      Juan Castro

      Juan Castro

      teacher•
      hace 3 años

      Ufff yes! Recuerdo al menos a 1 estudiante de este mismo curso que hizo esto mismo como proyecto y le quedó muy, muy bien. Sí es posible. Bieeeen tedioso. Pero ya tienes todas las herramientas para lograrlo. ¡Dale pues! :muscle:

    Humberto Guardado

    Humberto Guardado

    student•
    hace 2 años

    Mi duda es que tiene que ver la mediana, en general, con la habilidad de proyectar el crecimiento o rendimiento de un rango de salarios?

    La mediana indica si la empresa a crecido en cantidad de empleados, dichos empleados representados por el salario que devengan.

    Si todos ganasen lo mismo, la mediana seria el salario que gana cada uno.

    Pero si hay variaciones en el rango de salarios, de acuerdo a un criterio X cualquiera, entonces la mediana indica el valor salarial debajo del cual están 50 por ciento de empleados, y encima el otro 50 porciento.

    Por esta razón es tan importante ordenar los datos.

    Pero mi duda sigue: como sirve para proyectar un escenario futuro?

    Rafael Tobias Sanchez Rojas

    Rafael Tobias Sanchez Rojas

    student•
    hace un año
    function medianaTop(){ const medianaDeCadaPersona = salarios.map(persona => medianaPorPersona(persona.name)); medianaDeCadaPersona.sort(function(a, b) { return b - a; // Ordena de mayor a menor }); console.log('Arreglo ordenado ' + medianaDeCadaPersona) const indexTerminaTopDiez = Math.ceil(medianaDeCadaPersona.length * 0.10 ) console.log('Posicion del arreglo donde termina el Top 10 por ciento :' + indexTerminaTopDiez) const topDiezMedianaDeCadaPersona = medianaDeCadaPersona.slice(0, indexTerminaTopDiez) console.log('Top 10 por ciento :' + topDiezMedianaDeCadaPersona) }
    Cristian Lotero Aquino

    Cristian Lotero Aquino

    student•
    hace 2 años

    Yo use el método .filter para sacar el top 10 % :

    //... const cantidad = medianaOrdenada.length / 10; const top10 = medianaOrdenada.filter((elemento, index) => index >= medianaOrdenada.length - cantidad) ; //... ```const cantidad = medianaOrdenada.length / 10;     const top10 = medianaOrdenada.filter((elemento, index) => index >= medianaOrdenada.length - cantidad) ;

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