Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

250
Vistas
¿Cómo encontrar el valor más pequeño y más grande de la lista de elementos, de la manera más eficiente?

Tengo dos conjuntos de elementos, uno contiene una lista de números y el segundo de nombres. algo como esto.

 A: 4, B: 3, C: 2, A: 5, C: 3,

Y mi tarea es encontrar elementos con el valor más pequeño y el valor más alto. Sé que podría crear una matriz de objetos y ordenarlos con el mapa [{A: 4},{C:2}....] Pero me preguntaba si hay formas eficientes de hacerlo. En lugar de crear un objeto have, use tres bucles. ¿Sería posible reemplazarlo con algo más eficiente? Como set o algo donde podría simplemente llamar a set.getItemWithMinValue, set.getItemWithMaxValue y el retorno sería: C:2, A:5

Perdón por la pregunta tonta, todavía estoy aprendiendo.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Esta sería una forma de hacerlo. Precaución: la matriz se cambiará (ordenará) en el transcurso del script.

 const arr=[{A: 4},{B: 3},{C: 2},{A: 5},{C: 3}], val=o=>Object.values(o)[0]; arr.sort((a,b)=>val(a)-val(b)); console.log(arr[0],arr[arr.length-1])

about 4 years ago · Juan Pablo Isaza Denunciar

0

Vas a tener que hacer un bucle, analizar el objeto en sus valores y verificar si el valor es mayor o menor.

 var data = [ { A: 4 }, { B: 3 }, { C: 2 }, { A: 5 }, { C: 3 }, ]; const results = data.reduce((minMax, item) => { const value = Object.values(item)[0]; if (!minMax) { minMax = { min: { value, item }, max: { value, item }, } } else if (minMax.min.value > value) { minMax.min = { value, item }; } else if (minMax.max.value < value) { minMax.max = { value, item }; } return minMax; }, null); console.log(results.min.item); console.log(results.max.item);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Podría tomar un solo bucle para obtener las entradas del objeto.

Este enfoque espera solo un valor mínimo y máximo único.

 const array = [{ A: 4 }, { B: 3 }, { C: 2 }, { A: 5 }, { C: 3 }]; let min, max; for (const object of array) { const [[k, v]] = Object.entries(object); if (!min || min[1] > v) min = [k, v]; if (!max || max[1] < v) max = [k, v]; } console.log('min', Object.fromEntries([min])); console.log('max', Object.fromEntries([max]));

Este enfoque respeta más de un nombre con el mismo valor mínimo o máximo.

 const array = [{ A: 4 }, { B: 3 }, { C: 2 }, { A: 5 }, { C: 3 }, { F: 2 }]; let min, max; for (const object of array) { const v = Object.values(object)[0]; if (!min || min[1] > v) min = [[object], v]; else if (min[1] === v) min[0].push(object); if (!max || max[1] < v) max = [[object], v]; else if (max[1] === v) max[0].push(object); } console.log('min', min[0]); console.log('max', max[0]);

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda