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

254
Views
Practicando matrices y bucles en JS y no puedo hacer que mi int -> proyecto binario funcione

Sé que hay como soluciones de 8 líneas para convertir números enteros a binario, pero estoy intentando crear un pequeño programa que haga lo mismo con matrices. Estoy usando 3 matrices, la primera almacena el número original que se convertirá y todos los valores de dividir ese número por 2 y luego redondear hacia abajo cuando hay un resto, también conocido como [122, 61, 61, 30.5, 30, 15.5, 15 , etc. etc.], y la segunda matriz almacenará los dígitos binarios en función de si el resto de la división es verdadero || falso, también conocido como [0,1,0,1,1,1,1]. Todavía no está escrito, pero al final tomaré el binaryArray y lo invertiré y lo pondré en una cadena para obtener 1111010, el binario correcto para 211.

Obviamente, estoy haciendo más de una cosa mal, pero me estoy acercando, ya que puedo ver los resultados iniciales correctos cuando hago console.log en la función principal. Cualquier ayuda aquí es apreciada, excepto que no necesito saber cómo hacer todo este concepto más fácil, ya que ya he estudiado las soluciones más fáciles y estoy intentando esto a propósito para practicar.

Ejecute el fragmento de código para ver que el resultado está cerca de la solución, pero obviamente lastNumArray no se está actualizando y todo no está en bucle.

 let num = 122; let array = [num]; let binaryArray = []; let lastNumArray = array[array.length - 1]; function convertToBinary(number) { let lastNumArray = number; var result = (number - Math.floor(number)) !== 0; if (result) { binaryArray.push('1') && array.push(lastNumArray / 2) && array.push(Math.floor(array[array.length - 1])) } else { binaryArray.push('0') && array.push(lastNumArray / 2) && //this pushes 61 array.push(Math.floor(array[array.length - 1])) } } while (array > 1) { convertToBinary(lastNumArray) && lastNumArray.push(array[array.length - 1]) } console.log(array) console.log(binaryArray) console.log(lastNumArray)

Cualquier ayuda o sugerencia aquí sería muy apreciada. Probé bucles for, do while y más, y me estoy acercando, pero realmente quiero saber qué estoy haciendo mal aquí para poder aprender. Esta es la primera pequeña función que he intentado escribir solo, ¡y definitivamente me mantiene humilde!

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Podrías intentar algo así con una llamada recursiva.

 let results = [] let binary = [] function cb(number) { if (number === 0) return results.push(number) results.push(number / 2) results.push(Math.floor(number / 2)) const last_index = results.length - 1 if (results[last_index] === results[last_index - 1]) { binary.push("0") } else { binary.push("1") } cb(results[last_index]) } cb(122) console.log(results) console.log(binary) console.log(binary.reverse().join(""))

about 4 years ago · Juan Pablo Isaza 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!