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

121
Visualizações
Conversión de números, obteniendo indefinido

Estoy trabajando en un programa que, antes de que pueda hacer cualquier otra cosa, debe poder convertir números en otros números. El programa solo funciona con números del 0 al 11 (que representan notas musicales), por lo que cualquier valor mayor o menor debe convertirse en un número entre 0 y 11. Pero cuando ejecuto mi función, devuelve indefinido para muchos números.

 const TET = 12; const Notes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; function NoteConverter(note) { const doubled = TET * 2; const tripled = TET * 3; for (index in Notes) { if (note == index) { return index; } else if (note == index + TET || note == index - TET) { return index; } else if (note == index + doubled || note == index - doubled) { return index; } else if (note == index + tripled || note == index - tripled) { return index; } } }

Cuando ejecuto la función usando 15 como el número a convertir, obtengo indefinido en lugar de 3, al que debería convertirse.

He estado tratando de averiguar qué estoy haciendo mal, pero no puedo. ¿Alguna ayuda?

about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Concatenará una cadena para index + TET , por lo que, por ejemplo, si el índice es 0 index + TET será 012 , sucede porque typeof index es string y también es una cadena porque la palabra clave in también funciona para objetos, por lo que devolvería el nombre clave para el objeto que es No siempre es un número.

editar: así que tienes que ir con las notas como se sugiere en la otra respuesta o asegurarte de que se convierta primero en número;)

about 4 years ago · Santiago Trujillo Relatório

0

Simplemente reemplace con de

 const TET = 12; const Notes = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; function NoteConverter(note) { const doubled = TET * 2; const tripled = TET * 3; for (index of Notes) { if (note == index) { return index; } else if (note == index + TET || note == index - TET) { return index; } else if (note == index + doubled || note == index - doubled) { return index; } else if (note == index + tripled || note == index - tripled) { return index; } } } console.log(NoteConverter(15))

about 4 years ago · Santiago Trujillo 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