Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

118
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!