Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

106
Visualizações
cómo escribir meses completos con clave de objeto donde los meses están en números

Actualmente estoy un poco confundido por qué mi código no funciona según lo previsto, y esperaba que pudieran ayudarme.

Tengo un objeto con año y meses.

 chosenMonths = {[ 2022: [0,1,2] 2018: [9,10] 2017: [11] ]}

Tengo una función que convertirá el número en meses escritos:

 const writeOutMonth = function(num, locale) { const date = new Date(); date.setMonth(num); return date.toLocaleString(locale, {month: 'long',}); }

Y dentro de mi código tengo Object.keys donde quiero imprimir el año y luego los meses escritos en la página.

 ${Object.keys(chosenMonths).reverse().map((year) => html`<p1> ${year}: ${writeOutMonth(chosenMonth[year].sort().join(', '), 'en-gb')}</p>`)}

En este momento, veo que se renderizará:

 2022: Invalid Date 2021: Invalid Date 2017: December

Mi pregunta es: ¿por qué es una fecha no válida, cuando tengo varios números en un año, y cómo hago para que funcione?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Tuve que hacer modificaciones para que el código se ejecutara, creo que eso es lo que necesitas, el problema era que estabas pasando una cadena compuesta por meses, en lugar de pasar un mes, cambié el método para recibir una matriz de meses, también, al sort () tuve que agregar la función de clasificación

 chosenMonths = { 2022: [0, 1, 2], 2018: [9, 10], 2017: [11], }; const writeOutMonth = function (monthArray, locale) { let monthNames = []; monthArray.forEach((mon) => { const date = new Date(); date.setMonth(mon); monthNames.push(date.toLocaleString(locale, { month: "long" })); }); return monthNames.join(", "); }; let result = Object.keys(chosenMonths) .reverse() .map( (year) => `<p1> ${year}: ${writeOutMonth( chosenMonths[year].sort((a, b) => a - b), "en-gb" )}</p>` ); console.log(result);
about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda