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

252
Vistas
¿Cómo enumerar eficientemente una matriz como una cadena en orden?

¡Esta es la primera pregunta que me hacen en este sitio en mi viaje como desarrollador!

Tengo una matriz - const dataOne = [17, 21, 23];

Necesito enumerar los valores en esta matriz para que se vea así cuando inicie sesión en la consola:

"17°C en 1 día, 21°C en 2 días, 23°C en 3 días"

El siguiente código registra exactamente lo que quiero, pero sé que esta no es la forma más eficiente de hacerlo. ¿Hay una forma "más limpia" o mejor de hacer esto sin codificar la matriz en la declaración de devolución? Ej: ${arr[i +1]}

 const dataOne = [17, 21, 23]; const printForecast = function(arr) { for (let i = 0; i < arr.length; i++) { return `${arr[i]}°C in ${i + 1} day, ${arr[i + 1]}°C in ${i + 2} days, ${arr[i + 2]}°C in ${i + 3} days`; } }; console.log(printForecast(dataOne));

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

0

Simplemente puede usar el mapa y unirse para lograr el resultado deseado

Esta es la forma más limpia de lograrlo. En este enfoque, no tiene que rastrear dónde debe colocar la coma ( , ). Simplemente map sobre la matriz y luego join con , simple

 const dataOne = [17, 21, 23]; const printForecast = function (arr) { return arr.map((t, i) => `${t}°C in ${i + 1} day${i !== 0 ? "s" : ""}`) .join(", "); }; console.log(printForecast(dataOne));

Si desea utilizar reducir, puede hacerlo como:

 const dataOne = [17, 21, 23, 25]; const printForecast = function (arr) { return dataOne.reduce((agg, x, index, src) => (agg += `${x}°C in ${index + 1} day${index !== 0 ? "s" : ""}${ index !== src.length - 1 ? ", " : ""}`),""); }; console.log(printForecast(dataOne));

about 4 years ago · Juan Pablo Isaza Denunciar

0

En primer lugar, si el código funciona para ti y lo entiendes, es lo suficientemente bueno. Intente optimizar más tarde cuando esté muy familiarizado con los conceptos básicos.

Por el bien de esta pregunta, puede usar .reduce() para resolver el problema. Se utiliza para iterar sobre los valores a agregar y devolver un único resultado calculado.

 const dataOne = [17, 21, 23, 25]; const printForecast = function(arr) { let newString = dataOne.reduce((agg, x, index) => { if (index === 0) { agg = agg + x + '°C in ' + (index + 1) + ' day'; } else { agg = agg + ', ' + x + '°C in ' + (index + 1) + ' days'; } return agg; }, ''); return newString } console.log(printForecast(dataOne));

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